PHP를 사용하여 체크박스로 선택한 여러 행 삭제
사용자 선택에 따라 데이터베이스에서 여러 행을 삭제하는 것은 웹 개발에서 일반적인 작업입니다. . PHP에서 확인란을 사용하여 이를 수행하려면 특정 단계를 따라야 합니다.
코드 분석
제공된 코드는 확인란 선택을 기반으로 여러 행을 삭제하려고 시도하는 동안 다음을 포함합니다. 일부 오류:
해결책
이러한 문제를 해결하고 성공적인 행 삭제를 보장하려면 다음 조정을 수행해야 합니다.
배열 기반 확인란 이름
체크박스 입력 이름은 삭제 루프를 용이하게 하기 위해 배열로 처리되어야 합니다. 확인란 이름에 []를 추가하면 됩니다:
<code class="html"><input name="checkbox[]" type="checkbox" value="<?php echo $row['link_id']; ?>"></code>
쿼리의 데이터베이스 연결
데이터베이스 연결($dbc)은 다음과 같이 전달되어야 합니다. mysqli_query를 사용하여 쿼리에 매개 변수를 추가합니다.
<code class="php">$result = mysqli_query($dbc, $sql);</code>
예제 스크립트
아래 수정된 스크립트는 이러한 변경 사항을 통합하고 기능을 보여줍니다.
<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>
이러한 수정을 통해 스크립트는 사용자의 확인란 선택에 따라 지정된 테이블에서 여러 행을 효과적으로 삭제합니다.
위 내용은 PHP에서 체크박스를 사용하여 여러 행을 올바르게 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!