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. $result = mysqli_query($dbc, $sql);에 표시된 대로 각 mysqli_query 호출에 $dbc 데이터베이스 연결을 전달합니다.

이러한 수정을 통해 코드는 선택한 확인란을 기반으로 여러 행을 올바르게 삭제해야 합니다.

위 내용은 PHP에서 체크박스를 사용하여 여러 행을 삭제하는 방법: 일반적인 오류를 해결하고 성공적인 실행을 보장합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!