ホームページ  >  記事  >  バックエンド開発  >  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>

この変更により、選択したチェックボックスをカウントしてループして削除できるようになります。

もう 1 つのエラーは、クエリ実行時のデータベース接続。 $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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。