Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan Berbilang Kotak Semak Berbilang dan Data Susunan Kotak Teks ke dalam Pangkalan Data MySQL?

Bagaimana untuk Memasukkan Berbilang Kotak Semak Berbilang dan Data Susunan Kotak Teks ke dalam Pangkalan Data MySQL?

DDD
DDDasal
2024-11-28 06:37:17959semak imbas

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

Memasukkan Berbilang Kotak Semak dan Tatasusunan Kotak Teks ke dalam Pangkalan Data MySQL

Memasukkan berbilang kotak pilihan dan tatasusunan kotak teks ke dalam pangkalan data MySQL boleh menjadi tugas yang sukar. Ini benar terutamanya apabila kotak semak hanya diserahkan jika ia ditandakan. Berikut ialah penjelasan terperinci tentang cara untuk mencapai ini:

Borang HTML

Pastikan setiap kotak semak mempunyai indeks eksplisit dalam atribut namanya:

<input tabindex="1" name="checkbox[0]" type="checkbox" value="17" />

Selain itu, pastikan tatasusunan kotak teks sepadan dengan kotak pilihan dengan mempunyai indeks yang sama dalam namanya atribut.

Skrip PHP

1. Mengendalikan Kotak Pilihan:

Gunakan foreach untuk mengulangi tatasusunan kotak pilihan dan mengindeks setiap nilai dengan indeks yang sepadan:

foreach($_POST['checkbox'] as $i => $check) {
    $checkArray[$i] = $check;
}

2. Menggabungkan Tatasusunan:

Memandangkan indeks tatasusunan kotak pilihan mungkin tidak sejajar dengan tatasusunan lain, anda perlu menggabungkannya secara manual. Gunakan gelung foreach lain untuk mengulangi tatasusunan kotak semak dan gabungkan nilai dengan nilai yang sepadan daripada tatasusunan lain:

foreach($checkArray as $i => $check) {
    $itemArray[$i] = $_POST['item'][$i];
    $quantityArray[$i] = $_POST['quantity'][$i];
}

3. Memasukkan ke dalam Pangkalan Data:

Sekarang anda telah menggabungkan tatasusunan dengan betul, anda boleh melakukan sisipan ke dalam pangkalan data. Gunakan pernyataan yang disediakan dengan bind_param untuk mengelakkan suntikan SQL:

$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();
}

Petua Tambahan:

  • Elakkan harga pengekodan keras dalam HTML. Sebaliknya, dapatkannya daripada pangkalan data semasa pemprosesan borang.
  • Pastikan sambungan pangkalan data dibuka menggunakan API yang sama (MySQLi atau PDO) sepanjang kod.
  • Gunakan execute() untuk melaksanakan yang disediakan pernyataan dan bukannya mysql_query, yang merupakan sebahagian daripada API MySQL warisan.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Berbilang Kotak Semak Berbilang dan Data Susunan Kotak Teks ke dalam Pangkalan Data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn