Ich nehme an, dies würde von einem Formular nehmen Informationen?
Wenn ja, benennen Sie die Eingaben wie "name =" Vorname [] "", was dazu führt, dass sie beim Übergeben in ein Array platziert werden, wie zB $ _POST ['Vorname'] [0] 3 Eingänge namens Vorname [], dann würden Sie $ _POST ['Vorname'] [0], $ _ POST ['Vorname'] [1] und $ _POST ['Vorname'] [2] bekommen.
Dann tun Sie etwas wie folgt aus:
$sql = 'INSERT INTO `cases` VALUES ';
for($i = 0;$i < count($_POST['firstname']);$i++)
{
$sql .= "('$case','".$_POST['firstname'][$i]."','".$_POST['lastname'][$i]."','$city')";
if($i != count($_POST['firstname']) - 1)
{
$sql .= ','; //Will insert a comma after each except the last. Count - 1 since $i will equal count - 1 on the last one, since it starts at 0 and not 1.
}
}
$register_case = mysql_query($sql);
Ich denke, dass sollte funktionieren.
Alternativ könnten Sie eine foreach und fügen Sie ein "," auf jedem und dann schneiden Sie es vom rechten Ende der Zeichenfolge, wenn Sie fertig sind, oder tun Sie eine foreach und halten Sie einen externen Zähler, der nach dem Ende manuell erhöht. Auf den zweiten Gedanken, keiner von denen würde die Nachnamen zu fangen, gut ohne eine $ key => $ value-Typ-Sache, und tun $ _POST ['lastname'] [$ key]. Müsste auch mit einem if nach leeren Strings suchen.
Natürlich möchten Sie niemals direkt $ _POST oder $ _GET Werte an SQL übergeben, validieren Sie zuerst und stellen Sie sicher, dass es keine Injektion gibt.
Erstellen Sie diese Abfrage dynamisch mit Bedingungsoperator? –