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

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

Patricia Arquette
Patricia Arquette원래의
2024-10-26 16:50:30616검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.