Hallo zusammen,
ich habe ein HTML-Formular, mit dem ich Daten in eine SQL-Datenbank eintragen kann.
In diesem Formular habe ich auch Checkboxen. Wenn eine Checkbox angeklickt wird, sollen der Value der Checkbox sowie 3 dazugehörige Inhalte aus Text-input-Feldern in die Datenbank eingetragen werden. Hier ist mein Code:
Das funktioniert auch, solange beim Anklicken mehrerer Checkboxen keine in der Reihenfolge ausgelassen wird. Werden jedoch z.B. nur die Checkboxen 1, 3 und 5 angeklickt, fehlen Werte in der Datenbanktabelle, da count($_POST['chk']) 3 ergibt und daher die Werte der 5. Checkbox nicht mehr eingetragen werden. Wenn ich den Array-Key nicht vorgebe, also z.B.:
werden zwar alle Checkbox-Values richtig eingetragen, aber die dazugehörigen Text-Inhalte stehen in falschen Zeilen, da sie ihren Checkbox-Values ja nicht eindeutig zugeordnet sind.
Wie kann ich hier nun alle Werte richtig in die Datenbank eintragen, auch wenn einige Checkboxen in der Reihenfolge nicht angeklickt werden?
Vielen Dank!
ich habe ein HTML-Formular, mit dem ich Daten in eine SQL-Datenbank eintragen kann.
In diesem Formular habe ich auch Checkboxen. Wenn eine Checkbox angeklickt wird, sollen der Value der Checkbox sowie 3 dazugehörige Inhalte aus Text-input-Feldern in die Datenbank eingetragen werden. Hier ist mein Code:
HTML-Code:
<input type="checkbox" name="chk[1]" value="Holz"> Holz <input type="text" name="Groesse[1]" size="20"> <input type="text" name="Gewicht[1]" size="20"> <input type="text" name="Kommentar[1]" size="80"> <input type="checkbox" name=" chk [2]" value="Metall"> Metall <input type="text" name="Groesse[2]" size="20"> <input type="text" name="Gewicht[2]" size="20"> <input type="text" name="Kommentar[2]" size="80"> <input type="checkbox" name="chk[3]" value="Plastik"> Plastik <input type="text" name="Groesse[3]" size="20"> <input type="text" name="Gewicht[3]" size="20"> <input type="text" name="Kommentar[3]" size="80"> <input type="checkbox" name="chk[4]" value="Kunststoff"> Kunststoff <input type="text" name="Groesse[4]" size="20"> <input type="text" name="Gewicht[4]" size="20"> <input type="text" name="Kommentar[4]" size="80"> <input type="checkbox" name="chk[5]" value="Glas"> Glas <input type="text" name="Groesse[5]" size="20"> <input type="text" name="Gewicht[5]" size="20"> <input type="text" name="Kommentar[5]" size="80"> <input type="checkbox" name="chk[6]" value="Gummi"> Gummi <input type="text" name="Groesse[6]" size="20"> <input type="text" name="Gewicht[6]" size="20"> <input type="text" name="Kommentar[6]" size="80">
PHP-Code:
for ($i = 0; $i < count($_POST['chk']); $i++) {
if (!empty($_POST['chk'][$i])) {
$sql="INSERT INTO product (chk_id, product_id, Name, Material, Groesse, Gewicht, Kommentar) VALUES ('', (SELECT id from product_main WHERE Name='$Name'), '$Name', '". $_POST['chk'][$i]."','". $_POST['Groesse'][$i]."','". $_POST['Gewicht'][$i]."', '". $_POST['Kommentar'][$i]."')";
mysqli_query($db, $sql);
}
}
if (mysqli_affected_rows($db) > 0) {
echo "<h3> Eintrag erfolgreich</h3>";
} else {
echo "<h3 style='color:red'>Eintrag nicht erfolgreich</h3>";
}
HTML-Code:
<input type="checkbox" name=" chk []" value="Metall"> Metall <input type="text" name="Groesse[]" size="20"> <input type="text" name="Gewicht[]" size="20"> <input type="text" name="Kommentar[]" size="80">
Wie kann ich hier nun alle Werte richtig in die Datenbank eintragen, auch wenn einige Checkboxen in der Reihenfolge nicht angeklickt werden?
Vielen Dank!
Kommentar