Menggunakan PHP untuk Memadam Berbilang Baris yang Dipilih oleh Kotak Pilihan
Memadam berbilang baris daripada pangkalan data berdasarkan pemilihan pengguna adalah tugas biasa dalam pembangunan web . Untuk mencapai ini menggunakan kotak pilihan dalam PHP, langkah tertentu mesti diikuti.
Analisis Kod
Kod yang disediakan, semasa cuba memadamkan berbilang baris berdasarkan pemilihan kotak pilihan, mengandungi beberapa ralat:
Penyelesaian
Untuk menyelesaikan isu ini dan memastikan pemadaman baris berjaya, pelarasan berikut perlu dibuat:
Nama Kotak Semak Berasaskan Tatasusunan
Nama input kotak semak hendaklah dianggap sebagai tatasusunan untuk memudahkan gelung untuk pemadaman. Ini boleh dicapai dengan menambahkan [] pada nama kotak semak:
<code class="html"><input name="checkbox[]" type="checkbox" value="<?php echo $row['link_id']; ?>"></code>
Sambungan Pangkalan Data dalam Pertanyaan
Sambungan pangkalan data ($dbc) hendaklah diluluskan sebagai parameter kepada pertanyaan menggunakan mysqli_query:
<code class="php">$result = mysqli_query($dbc, $sql);</code>
Skrip Contoh
Skrip yang diperbetulkan di bawah menggabungkan perubahan ini dan menunjukkan kefungsian:
<code class="php"><?php // Database connection $dbc = mysqli_connect('localhost', 'root', 'admin', 'sample') or die('Error connecting to MySQL server'); // Query to retrieve records $query = "select * from links ORDER BY link_id"; $result = mysqli_query($dbc, $query) or die('Error querying database'); // Count records $count = mysqli_num_rows($result); ?> <table width="400" border="0" cellspacing="1" cellpadding="0"> <tr> <td> <form name="form1" method="post" action=""> <table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"> <tr> <td bgcolor="#FFFFFF"> </td> <td colspan="3" bgcolor="#FFFFFF"> <strong>Delete multiple links</strong> </td> </tr> <tr> <td align="center" bgcolor="#FFFFFF">#</td> <td align="center" bgcolor="#FFFFFF"> <strong>Link ID</strong> </td> <td align="center" bgcolor="#FFFFFF"> <strong>Link Name</strong> </td> <td align="center" bgcolor="#FFFFFF"> <strong>Link URL</strong> </td> </tr> <?php while ($row = mysqli_fetch_array($result)) { ?> <tr> <td align="center" bgcolor="#FFFFFF"> <input name="checkbox[]" type="checkbox" value="<?php echo $row['link_id']; ?>"> </td> <td bgcolor="#FFFFFF"><?php echo $row['link_id']; ?></td> <td bgcolor="#FFFFFF"><?php echo $row['link_name']; ?></td> <td bgcolor="#FFFFFF"><?php echo $row['link_url']; ?></td> </tr> <?php } ?> <tr> <td colspan="4" align="center" bgcolor="#FFFFFF"> <input name="delete" type="submit" value="Delete"> </td> </tr> </table> </form> </td> </tr> </table> <?php // Check if delete button active, start this if (isset($_POST['delete'])) { $checkbox = $_POST['checkbox']; for ($i = 0; $i < count($checkbox); $i++) { $del_id = $checkbox[$i]; $sql = "DELETE FROM links WHERE link_id='$del_id'"; $result = mysqli_query($dbc, $sql); } // If successful, redirect to view_links.php if ($result) { echo '<meta http-equiv="refresh" content="0;URL=view_links.php">'; } } mysqli_close($dbc); ?></code>
Dengan membuat pembetulan ini, skrip akan memadamkan berbilang baris secara berkesan daripada jadual yang ditentukan berdasarkan pilihan kotak semak pengguna.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Berbilang Baris Dengan Betul Menggunakan Kotak Semak dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!