Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Taulukon tallennus tietokantaan

Sivun loppuun

jannu82 [21.11.2006 18:50:30]

#

elikkä minulla on ongelmana taulukko muodossa olevan tiedon talletus mysql tietokantaan, kun talletan sinne tiedon nii tietokannassa lukee vaan "array"? pitäisikö tuo jotenkin käsitellä haettaessa taulukosta vai onko talletuksessa jotain vikaa?
talletus koodi:

<?php
$taulut="CREATE TABLE $taulukko (id INT( 2 ) NOT NULL AUTO_INCREMENT , nimi TEXT NOT NULL, type TEXT NOT NULL,name1 TEXT NOT NULL,
koko1 TEXT NOT NULL, koko2 TEXT NOT NULL, formname TEXT NOT NULL, arvo TEXT NOT NULL,radio TEXT NOT NULL, dropdown TEXT NOT NULL,PRIMARY KEY (id) )" or die ("ei pysty tekee taulua");

for($k=1;$k<=sizeof($nimi);$k++){
$kys = "INSERT INTO $taulukko (nimi, name1, type, koko1, koko2, formname, arvo, radio, dropdown) VALUES
('".$_POST['nimi[ ]']."','".$_POST['name1[ ]']."','".$type[$i]."','".$koko1[$i]."','".
$koko2[$i]."','".$formname."','".$arvo[$i]."','".$radio[$i]."','".$dropdown[$i]."')";
}
$result = mysql_query($kys);
if (!$result)
{
die("<p>Kysely epäonnistui tällä kerralla".mysql_error());
}
else {
echo "<p>Tiedot talletettu onnistuneesti tietokantaan!</p>";
mysql_close($yhteys);
?>

tässä haku koodi:

<?php
$kys="SELECT nimi, name1, type, koko1, koko2, formname, arvo, radio, dropdown FROM $table ORDER BY id ";
$result = mysql_query($kys);
if (!$result)
{
die("<p>Kysely epäonnistui tällä kerralla".mysql_error());
}

else {
for($i=1;$i<=mysql_num_rows($result);$i++)
{
echo"<table borde=3>";
$nimi=mysql_result($result,$i,"nimi");
$name1=mysql_result($result,$i,"name1");
$type=mysql_result($result,$i,"type");
$koko1=mysql_result($result,$i,"koko1");
$koko2=mysql_result($result,$i,"koko2");
$formname=mysql_result($result,$i,"formname");
$arvo=mysql_result($result,$i,"arvo");
$radio=mysql_result($result,$i,"radio");
$dropdown=mysql_result($result,$i,"dropdown");
echo "<tr><td>$nimi</td><td>$name1</td></tr> <tr><td>";
echo"</table>";}
//echo"<table border=1>";
while($a_row=mysql_fetch_array($result))
	{
		//echo"<tr>\n";
		foreach($a_row as $field)
		echo "$field";

		//echo"\t<td>$field</td></tr>";


}
//echo"</table>";



mysql_close($yhteys); }
?>

tossa siis mulla on kaks eri vaihtoehtoa hakuu mitä oon yrittäny ....

kayttaja-2791 [21.11.2006 19:22:21]

#

Katsopa print_r funktiolla missä muodossa se data sieltä tulee.

jannu82 [21.11.2006 19:50:43]

#

print_r ei tulosta mitään, toi muuten tulostaa "array array" ja se vaikuttas et se olis string tyyppisenä eli tietona olis "array" teksti

sane [21.11.2006 22:12:28]

#

Sun pitää pistää se taulukko sinne silmukalla, eli jokainen arvo erikseen. Tota koodia katsoessa iskee silmään, et silmukassa käytetään muuttujana $k, mutta taulukoiden arvoissa taas $i.

jannu82 [22.11.2006 09:47:13]

#

juu toisiaan en huomannu korjata tohon sitä että se oli $k kaikissa...
nyt se on tämän näköinen ja toimii

<?php
for($i=0;$i<=sizeof($nimi);$i++){
$kys = "INSERT INTO $taulukko (nimi, name1, type, koko1, koko2, formname, arvo, radio, dropdown) VALUES
('".$nimi[$i]."','".$name1[$i]."','".$type[$i]."','".$koko1[$i].
"','".$koko2[$i]."','".$formname."','".$arvo[$i]."','".$radio[$i]."','".$dropdown[$i]."')";
}

?>

jannu82 [22.11.2006 12:03:51]

#

ilmeni uusi ongelma eli tuo tallentaa vain muuttujien viimeiset arvon taulukkoon...

tsuriga [22.11.2006 12:11:40]

#

Niiko se ylikirjottaa aina tuon $kys jokaisella looppauksella. mysql_query sinne loopin sisään.

jannu82 [22.11.2006 12:15:30]

#

mitähän tolle sit pitäs tehä ettei se ylikirjoittais? eiks kuitenki tuo solu vaihdu tuossa for lauseen mukaan?

tsuriga [22.11.2006 12:47:11]

#

Suorita se mysql_query siellä loopin sisällä, aina uuden kyselyn ($kys) muodostamisen jälkeen.

jannu82 [22.11.2006 14:12:25]

#

pistin sen sinne ja nyt toimii!!
kiitoksia jälleen kerran avusta

jannu82 [24.11.2006 18:51:46]

#

uusi ongelma eli miten sais moniulotteisen taulukon arvot tallettua tuonne tietokantaan?

Olga [24.11.2006 20:59:58]

#

Riippuu taulukon sisällöstä ja tietokannan rakenteesta. Kerrohan lisäinfoa.

jannu82 [24.11.2006 21:22:37]

#

elikkä taulukon sisältö olis:
Array ( [0] => Array ( [1] => tieto1 [2] => tieto2 [3] =>jne.. )
elikkä tuo tieto määrä riipuis siitä montako kenttää käyttäjä haluaa
miten nuo sitten saisi tietokantaan?
ja tietokanta olis sama kuin tuossa yläpuolella,

<?php


$kys = "INSERT INTO $taulukko (nimi, name1, type, koko1, koko2, formname, arvo,radio, dropdown ) VALUES ('".$nimi[$i]."','".$name1[$i]."','".$type[$i]."','".$koko1[$i]."','".$koko2[$i]."','".$formname."','".$arvo[$i]."','".$valikko1[$i]."','".$dropdown[$i][$j]."')";
?>

jannu82 [26.11.2006 13:06:12]

#

noniin.. tämmösellä saa jo kaks arvoo tallettua
ja tuo $arvo on pudotusvalikon kenttien määrä..

<?php
for($i=1;$i<=sizeof($nimi);$i++)
for($j=1;$j<=sizeof($arvo);$j++)
	{

echo "valinta on suuremipi";
$kys = "INSERT INTO $taulukko (nimi, name1, type, koko1, koko2, formname, arvo,radio, dropdown ) VALUES ('".$nimi[$i]."','".$name1[$i]."','".$type[$i]."','".$koko1[$i]."','".$koko2[$i]."','".$formname."','".$arvo[$i]."','".$radio[$i][$j]."','".$dropdown[$i][$j]."')";
$result = mysql_query($kys);
	}
?>

mutta se ei talleta kuin kaksi arvo vaan vaikka arvo olisi enemmän ja myös muita kenttiä se tallettaa 2 kertaa esim. jos olis nimi kenttä niin se tallettuis kahteen kertaan..
mikähän mahtaa olla ongelma..

jannu82 [26.11.2006 15:09:10]

#

onko moniulotteisen talulukon tallentamiseen tietokantaan jotain muuta keinoa kuin tuossa yläpuolella?


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta