Einfügen mehrerer Checkbox- und Textbox-Arrays in eine MySQL-Datenbank
Das Einfügen mehrerer Checkbox- und Textbox-Arrays in eine MySQL-Datenbank kann eine knifflige Aufgabe sein. Dies gilt insbesondere dann, wenn die Kontrollkästchen nur dann übermittelt werden, wenn sie aktiviert sind. Hier finden Sie eine detaillierte Erklärung, wie Sie dies erreichen:
HTML-Formular
Stellen Sie sicher, dass jedes Kontrollkästchen einen expliziten Index in seinem Namensattribut hat:
<input tabindex="1" name="checkbox[0]" type="checkbox" value="17" />
Stellen Sie außerdem sicher, dass die Textfeld-Arrays den Kontrollkästchen entsprechen, indem sie denselben Index in ihren Namen haben Attribute.
PHP-Skript
1. Umgang mit Kontrollkästchen:
Verwenden Sie foreach, um das Kontrollkästchen-Array zu durchlaufen und jeden Wert mit seinem entsprechenden Index zu indizieren:
foreach($_POST['checkbox'] as $i => $check) { $checkArray[$i] = $check; }
2. Kombinieren von Arrays:
Da die Indizes des Kontrollkästchen-Arrays möglicherweise nicht mit den anderen Arrays übereinstimmen, müssen Sie sie manuell kombinieren. Verwenden Sie eine weitere foreach-Schleife, um das Kontrollkästchen-Array zu durchlaufen und die Werte mit den entsprechenden Werten aus den anderen Arrays zu kombinieren:
foreach($checkArray as $i => $check) { $itemArray[$i] = $_POST['item'][$i]; $quantityArray[$i] = $_POST['quantity'][$i]; }
3. Einfügen in die Datenbank:
Da Sie nun die Arrays richtig kombiniert haben, können Sie das Einfügen in die Datenbank durchführen. Verwenden Sie eine vorbereitete Anweisung mit bind_param, um SQL-Injection zu vermeiden:
$stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)"); $stmt->bind_param("sis", $product, $quantity, $price); foreach ($itemArray as $i => $product) { $quantity = $quantityArray[$i]; $price = $_POST['price'][$i]; // Get the price from the HTML $stmt->execute(); }
Zusätzliche Tipps:
Das obige ist der detaillierte Inhalt vonWie fügt man mehrere Kontrollkästchen- und Textfeld-Array-Daten effizient in eine MySQL-Datenbank ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!