#1 9. August 2007 moin leutz ich komm grad nciht s richtig weiter Ich habe ein formular in dem man name vorname eintragen kann. es werden dann soviele inputs ausgeben durch eine whileschleife , wieviele ind er datenbank stehen. so und will ich den inputs in ein großes mehrdimensionales array speichern z.B. Code: $i = 1; while (......) { //daten aus der datenbank auslesen <input type='text' name = 'daten[$i][nachname]' value='$nachname><input type='text' name= 'daten[$i][vorname]' value='$vorname'><input type = hidden' name='daten[$i][id]' value='$id'> } nur wie lese ich das dann anch dem versenden aus und trage die daten nach und nach in die datenbank ein? Also dass dann daten[1][vorname] und daten[1][nachname] in eine zeile eingetragen werden bzw geupdatet werden. und so weiter? hab schon foreach und alles durch klappt aber nie. + Multi-Zitat Zitieren
#2 9. August 2007 AW: mehrdimensionales array in Datenbank naja, du definierst ja nen Array in deinem Form. Die Frage ist, musst du wirklich $i als Counter in der Form benutzen? Würde daten[]['vorname'] nicht reichen? Egal, in PHP kannst du das ganze via foreach($_POST['daten'][] AS $data) auslesen. In $data ist dann alles für jede $i gespeichert. + Multi-Zitat Zitieren
#3 9. August 2007 AW: mehrdimensionales array in Datenbank ok danke dann hab cih die foreach schleife immer falsche definiert weil nachm posten Code: $dat2 = strip_tags($_POST['daten']); foreach ($dat2 as $value) .... hatte ich dann immer^^ mla versuchen ob es so geht thx bw bekommste + Multi-Zitat Zitieren
#4 9. August 2007 AW: mehrdimensionales array in Datenbank lass dir mal mit print_r den inhalt des $_POST arrays anzeigen mb erkennst du wo der fehler liegt finds meist recht hilfreich + Multi-Zitat Zitieren
#5 9. August 2007 AW: mehrdimensionales array in Datenbank Ja, wenn ich immer stecken bleibe, ist print_r oder auch var_dump der Retter in der Not + Multi-Zitat Zitieren
#6 9. August 2007 AW: mehrdimensionales array in Datenbank jo naja also der code für die inputs ist nun der hier Code: while ($ks = mysql_fetch_array($haha)) { ...//sql abfrage der daten <tr> <td>Nachname</td><td>Vorname</td><td>Art</td><TD>Exchange</tD> </tr> <tr> <td><input type='text' name='daten[$i][nachname]' value='$nname'></td> <td><input type='text' name='daten[$i][vorname]' value='$vname'></td> <input type='hidden' name='daten[$i][index]' value='$rd'> </tr>"; $i++; } } das $i als laufvariable dient dazu, dass das array so gespeichert wird Daten ( [1] (Nachname => horst; Vorname => Dieter)). weil vorname und nacname müssen den gleichen index haben oder? damit sie dann beim forech beide aufgerufen werden und in die gleiche datenbankzeile geupdatet werden!?. jo und meine foreach Code: if (isset($_POST['s3'])) { foreach ($_POST['daten'][] as $value) { $nach = $value['nachname']; $vor = $value['vorname']; $in = $value['index']; mysql_query("update utbl set nachname = '$nach', vorname = '$vor' where id = '$in' Limit 1") or die ($mysql_error()); } } es kommt aber immer der fehler "Warning: Invalid argument supplied for foreach()... on line 76" tjo und da leigt mein prob^^ im array sind alle datensätze vorhanden + Multi-Zitat Zitieren
#7 9. August 2007 AW: mehrdimensionales array in Datenbank ich benutze für so was phpedit da kannst du dein php script ja debuggen und so zu jederzeit schauen welchen wert welche variable/ array etc. haben und so fehler recht schnell finden + Multi-Zitat Zitieren
#8 9. August 2007 AW: mehrdimensionales array in Datenbank jo aber wie gesagt im array scheint alles i zu sein : Array ( [1] => Array ( [nachname] => ghjgk [vorname] => hgjkgh ) [2] => ) kp weiß halt nur ncih wie die foreach aussehen müsste -.- . + Multi-Zitat Zitieren
#9 9. August 2007 AW: mehrdimensionales array in Datenbank Ist nicht getestet, sollte aber gehen. PHP: <? PHP if(isset( $_POST [ 'action' ])) { foreach( $_POST [ 'testfeld' ] AS $row ) { $i ++; echo 'Das Feld ' . $i . ' hast den Wert: "' . $row [ 'vorname' ]. '"<br />' ; } } ?> <form action="testen.php" method="post"> <input type="text" name="testfeld[][vorname]" value="Hans" /> <input type="text" name="testfeld[][vorname]" value="Peter" /> <input type="text" name="testfeld[][vorname]" value="Fred" /> <input type="text" name="testfeld[][vorname]" value="The Quest" /> <input type="text" name="testfeld[][vorname]" value="RaidRush" /> <input type="text" name="testfeld[][vorname]" value="PARRHESIA!" /> <input type="submit" name="action" value="Go" /> </form> + Multi-Zitat Zitieren
#10 9. August 2007 naja ich will das ja in eine andere form bekommen. da gibts ja nicht nur vorname sondern auch nachname und die sollen beide im array den gleichen index haben, weil sie in die gleiche zeile geschrieben werdne in er db jo das klappt auch wenn ich nur das feld vorname haben aber es soll ja noch nachname etc. hinzukommen und die der nachname und vorname müssen doch den gleichen index im array haben oder? wenn ich jetzt daten[][vorname] daten[][nachname] habe dann sieht das dann aber so aus daten[1][vorname] daten[2][nachname] aber müssten doch dan beide index 1 haben damit das funzt oder? EDIT: sry doppelpost der obere beitrag wurde bei mir komischerweise trotz aktualisierung nciht angezeigt -.- EDIT2: habs geschafft danke euch allen^^ versuch alle zubewerten... Fehler war bei foreach - schleife da hab cih immer $_POST['daten'][] geschrieben und die hinteren [] hät ich mir sparen können^^ + Multi-Zitat Zitieren