Heim > Datenbank > MySQL-Tutorial > Wie fügt man mehrere Kontrollkästchen- und Textfeld-Array-Daten effizient in eine MySQL-Datenbank ein?

Wie fügt man mehrere Kontrollkästchen- und Textfeld-Array-Daten effizient in eine MySQL-Datenbank ein?

DDD
Freigeben: 2024-11-28 06:37:17
Original
957 Leute haben es durchsucht

How to Efficiently Insert Multiple Checkbox and Textbox Array Data into a MySQL Database?

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" />
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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];
}
Nach dem Login kopieren

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();
}
Nach dem Login kopieren

Zusätzliche Tipps:

  • Vermeiden Sie hartcodierte Preise im HTML. Rufen Sie sie stattdessen während der Formularverarbeitung aus der Datenbank ab.
  • Stellen Sie sicher, dass die Datenbankverbindung im gesamten Code mit derselben API (MySQLi oder PDO) geöffnet wird.
  • Verwenden Sieexecute(), um die vorbereitete Ausführung auszuführen Anweisungen anstelle von mysql_query, das Teil der alten MySQL-API ist.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage