如何在 PHP 中使用複選框刪除多行:解決常見錯誤並確保成功執行?

Patricia Arquette
發布: 2024-10-26 04:00:27
原創
415 人瀏覽過

How to Delete Multiple Rows Using Checkboxes in PHP: Addressing Common Errors and Ensuring Successful Execution?

使用PHP 透過選擇複選框刪除多行:常見錯誤故障排除

使用PHP 從MySQL 資料庫表中刪除多行時,使用複選框選擇連結需要仔細編碼確保成功執行。此程式碼片段提供了常見問題的解決方案:

<code class="php"><html>
  <head>
    <title>Links Page</title>
  </head>
  <body>
    <h2>Choose and delete selected links.</h2> 
    <?php
      $dbc = mysqli_connect('localhost','root','admin','sample') or die('Error connecting to MySQL server');
      $query = "select * from links ORDER BY link_id";
      $result = mysqli_query($dbc,$query) or die('Error querying database');
      $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); // Pass the database connection here
        }
        // if successful redirect to view_links.php 
        if($result){
          echo '<meta http-equiv="refresh" content="0;URL=view_links.php">';
        }
      }
      mysqli_close($dbc);
    ?>
  </body>
</html></code>
登入後複製

修正:

  1. 將複選框名稱視為陣列:name="checkbox []" 而不是name="checkbox"。
  2. 將 $dbc 資料庫連接傳遞給每個 mysqli_query 調用,如 $result = mysqli_query($dbc, $sql); 所示。

透過這些修改,程式碼應該根據所選的複選框正確刪除多行。

以上是如何在 PHP 中使用複選框刪除多行:解決常見錯誤並確保成功執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!