PHP의 체크박스를 사용하여 MySQL 데이터베이스 테이블에서 여러 행을 삭제하려면 어떻게 해야 하며, 어떤 일반적인 오류를 피해야 합니까?

Patricia Arquette
풀어 주다: 2024-10-26 16:50:30
원래의
615명이 탐색했습니다.

How can I delete multiple rows from a MySQL database table using checkboxes in PHP, and what common errors should I avoid?

PHP에서 체크박스를 사용한 다중 행 삭제

제공된 코드는 MySQL 데이터베이스 테이블에서 여러 행을 삭제하는 것을 목표로 합니다. 그러나 현재 구현에서는 행이 삭제되지 않는 문제가 발생합니다. 이 문제를 해결하려면 코드에 대한 특정 수정이 필요합니다.

첫 번째 문제는 체크박스 값을 받는 방법에 있습니다. 체크박스 값을 다음과 유사한 배열로 처리해야 합니다.

<code class="php"><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
// Retrieve data from database and prepare HTML table
$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');

// Start form and table for displaying links and checkboxes
echo '<form name="form1" method="post" action="">';
echo '<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">';

// Header row
echo '<tr>';
echo '<td colspan="4" align="center" bgcolor="#FFFFFF"><strong>Delete multiple links</strong></td>';
echo '</tr>';

echo '<tr>';
echo '<td align="center" bgcolor="#FFFFFF">#</td>';
echo '<td align="center" bgcolor="#FFFFFF"><strong>Link ID</strong></td>';
echo '<td align="center" bgcolor="#FFFFFF"><strong>Link Name</strong></td>';
echo '<td align="center" bgcolor="#FFFFFF"><strong>Link URL</strong></td>';
echo '</tr>';

// Data rows
while ($row = mysqli_fetch_array($result)) {
    echo '<tr>';
    echo '<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" value="' . $row['link_id'] . '"></td>';
    echo '<td bgcolor="#FFFFFF">' . $row['link_id'] . '</td>';
    echo '<td bgcolor="#FFFFFF">' . $row['link_name'] . '</td>';
    echo '<td bgcolor="#FFFFFF">' . $row['link_url'] . '</td>';
    echo '</tr>';
}

// Submit button
echo '<tr>';
echo '<td colspan="4" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" value="Delete"></td>';
echo '</tr>';

// Closing tags
echo '</table>';
echo '</form>';

// Delete rows if submit button is clicked
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);
    }

    // Redirect to a confirmation or success page after deletion
    if ($result) {
        echo '<meta http-equiv="refresh" content="0;URL=view_links.php">';
    }
}

mysqli_close($dbc);
?></code>
로그인 후 복사

이러한 수정 사항은 문제를 해결하고 코드가 확인란을 사용하여 MySQL 테이블에서 여러 행을 삭제할 수 있도록 해야 합니다. .

위 내용은 PHP의 체크박스를 사용하여 MySQL 데이터베이스 테이블에서 여러 행을 삭제하려면 어떻게 해야 하며, 어떤 일반적인 오류를 피해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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