Cara Memasukkan Berbilang Kotak Semak dan Tatasusunan Kotak Teks ke dalam Pangkalan Data MySQL: Menangani Isu Biasa

Patricia Arquette
Lepaskan: 2024-10-30 11:10:12
asal
1008 orang telah melayarinya

  How to Insert Multiple Checkbox and Textbox Arrays into a MySQL Database: Addressing Common Issues

Memasukkan Berbilang Kotak Semak dan Tatasusunan Kotak Teks ke dalam Pangkalan Data MySQL: Menyelesaikan Isu Lazim

Pertanyaan yang melibatkan berbilang kotak pilihan dan tatasusunan kotak teks boleh menimbulkan cabaran dalam PHP. Artikel ini menangani dua isu khusus: mengapa kotak pilihan ditunjukkan sebagai ditandakan walaupun tidak dan mengapa data gagal dimasukkan ke dalam pangkalan data.

Isu Paparan Kotak Semak

Pelakunya ialah penggunaan letupan, yang menghasilkan rentetan dipisahkan koma bagi semua nilai kotak pilihan. Pendekatan ini tersilap memasukkan keseluruhan senarai ke dalam setiap baris pangkalan data, tidak kira sama ada kotak pilihan tertentu ditandakan atau tidak.

Untuk membetulkannya, tetapkan indeks eksplisit pada nama kotak pilihan dalam HTML borang. Dengan berbuat demikian, nilai kotak semak yang sepadan dalam tatasusunan $_POST['checkbox'] boleh dikaitkan dengan mudah dengan elemen $_POST['item'] dan $_POST['kuantiti'] yang disertakan tanpa bergantung pada letupan.

Kegagalan Memasukkan Pangkalan Data

Masalah lain timbul kerana kotak pilihan hanya menyerahkan nilai untuk item yang diperiksa. Ini membawa kepada ketidakpadanan antara indeks tatasusunan $_POST['checkbox'] dan elemen $_POST['item'] dan $_POST['kuantiti'] yang sepadan.

Untuk menyelesaikan isu ini, gunakan indeks yang diberikan kepada nama kotak semak dalam bentuk yang diubah suai. Ini membolehkan penyandingan nilai yang betul, memastikan setiap baris dalam pangkalan data mengandungi set data yang betul.

Selain itu, daripada menggunakan mysql_query, gunakan kaedah $conn->query(), iaitu konsisten dengan API MySQLi yang digunakan untuk sambungan pangkalan data.

Kod PHP yang dikemas kini:


$stmt = $conn->prepare(" MASUKKAN KE DALAM pembelian (Produk, Kuantiti, Harga) NILAI (?, ?, ?)");
$stmt->bind_param("sis", $nama, $kuantiti, $price);
foreach ( $_POST['kotak semak'] sebagai $i => $price) {

$name = $_POST['name'][$i];
$quantity = $_POST['quantity'][$i];
$stmt->execute();
Salin selepas log masuk

}

Langkah Keselamatan Tambahan

Sebagai langkah berjaga-jaga keselamatan, biasanya dinasihatkan untuk mendapatkan semula harga daripada pangkalan data dan bukannya menyimpannya dalam HTML. Ini menghalang pengguna daripada mengubah suai harga dalam pemeriksa web sebelum menyerahkan borang.

Atas ialah kandungan terperinci Cara Memasukkan Berbilang Kotak Semak dan Tatasusunan Kotak Teks ke dalam Pangkalan Data MySQL: Menangani Isu Biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!