php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Mehrere Datensätze gleichzeitig in die Datenbank


 
MarcoCH
20-12-2005, 00:50 
 
Hallo,

ich stecke in einem Problem fest und habe weder hier im Board, noch im WWW einen Codeschnipsel gefunden.

Es werden in einem Formular mittels for-Schleife z.B. 10 Zeilen mit 5 <input>-Feldern generiert:

$zeilen = 10;
for($z = 0; $z < $zeilen; $z++){
echo "
<tr>
<td align=\"center\"><input name=\"vorname$z\" type=\"text\" id=\"vorname$z\" value=\"\" size=\"20\" /></td>
<td align=\"center\"><input name=\"nachname$z\" type=\"text\" id=\"nachname$z\" value=\"\" size=\"20\" /></td>
<td align=\"center\"><input name=\"strasse$z\" type=\"text\" id=\"strasse$z\" value=\"\" size=\"20\" /></td>
<td align=\"center\"><input name=\"plz$z\" type=\"text\" id=\"plz$z\" value=\"\" size=\"20\" /></td>
<td align=\"center\"><input name=\"ort$z\" type=\"text\" id=\"ort$z\" value=\"\" size=\"20\" /></td>
</tr>
}


Diese Felder sollen in die DB eingetragen werden:


$sql = "insert into toys (vorname, nachname, strasse, plz, ort)
values ('$vorname','$nachname','$strasse','$plz','$ort')";



Mit welcher Schleife und welchen Konstrukten kann man das Einlesen der Daten aus 10 Datensätzen in die DB verwirklichen?
Sicherlich macht auch die Benuutzung von Arrays Sinn - aber hier endet mein Know-How.

Ich würde mich sehr über Tipps und Lösungsvorschläge freuen.

 
nofreak
20-12-2005, 10:34 
 
Versuche das
<?
$zeilen = 10;
for($z = 0; $z <= $zeilen; $z++){
echo "<tr>
<td align=\"center\"><input name=\"insert_ar[".$z."][vorname]\" type=\"text\" id=\"insert_ar[".$z."][vorname]\" value=\"\" size=\"20\"></td>
<td align=\"center\"><input name=\"insert_ar[".$z."][nachname]\" type=\"text\" id=\"insert_ar[".$z."][nachname]\" value=\"\" size=\"20\"></td>
<td align=\"center\"><input name=\"insert_ar[".$z."][strasse]\" type=\"text\" id=\"insert_ar[".$z."][strasse]\" value=\"\" size=\"20\"></td>
<td align=\"center\"><input name=\"insert_ar[".$z."][plz]\" type=\"text\" id=\"insert_ar[".$z."][plz]\" value=\"\" size=\"20\"></td>
<td align=\"center\"><input name=\"insert_ar[".$z."][ort]\" type=\"text\" id=\"insert_ar[".$z."][ort]\" value=\"\" size=\"20\"></td>
</tr>";
}
?>

Eintragen:



for($z = 0; $z <= $zeilen; $z++){
$sql = "insert into toys (vorname, nachname, strasse, plz, ort)
values ('$insert_ar[".$z."][vorname]','$insert_ar[".$z."][nachname]','$insert_ar[".$z."][strasse]','$insert_ar[".$z."][plz]','$insert_ar[".$z."][ort]')";
$result = mysql_query($sql);

}


Allerdings würd ich sagen, dass es nicht beste Lösung ist, Inserts in ner Schleife auszuführen

Sorry, hatte die query vergessen

 
Le_Cheffe
20-12-2005, 10:52 
 
@nofreak: Wieso keine Schleife verwenden bzw. wie sollte es sonst gehen ?

Gruß

Le Cheffe

 
nofreak
20-12-2005, 11:01 
 
Keine Ahnung, vielleicht gibts ja bessere wege via SQL, oder so...

 
reallife
20-12-2005, 11:08 
 
Moin,
so würde ich es machen:
$sql = "insert into toys (vorname, nachname, strasse, plz, ort) VALUES";
for($z = 0; $z <= $zeilen; $z++)
{
$sql .=" ('".$insert_ar[$z]["vorname"]."',"
. "'".$insert_ar[$z]["nachname"]."',"
. "'".$insert_ar[$z]["strasse"]."',"
. "'".$insert_ar[$z]["plz"]."',"
. "'".$insert_ar[$z]["ort"]."')";
}

if ( !ereg("(VALUES)$", $sql) )
{
$result = mysql_query($sql);
// ..
}

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:24 Uhr.