ホームページ >データベース >mysql チュートリアル >複数のデータベース行を削除する際の PHP チェックボックス配列とデータベース接続の問題を修正する方法

複数のデータベース行を削除する際の PHP チェックボックス配列とデータベース接続の問題を修正する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-28 08:53:13307ブラウズ

How to Fix PHP Checkbox Array and Database Connection Issues When Deleting Multiple Database Rows?

PHP を使用してチェックボックスの選択に基づいて複数の行を削除する

リレーショナル データベースを使用する場合、多くの場合、複数の行を同時に削除する必要があります。これを実現するには、フォームのチェックボックスを利用して、削除する行を選択します。

このガイドでは、PHP とチェックボックスを使用して複数の行を削除するときに直面する一般的な問題に対処します。 「PHP を使用してチェックボックスを選択して複数の行を削除する」というタイトルを繰り返すことなく、特定の問題ステートメントで提供される情報に基づいて、問題とその解決策の簡潔な概要を提供します。

問題

ユーザーが MySQL データベース テーブルから特定の行を選択して削除できるようにする PHP ファイルが作成されました。ただし、チェックボックスがマークされ、フォームが送信されたにもかかわらず、行はそのまま残ります。これは、問題が PHP コードに起因していることを示唆しています。

解決策

提供された PHP コードを詳しく調べて、潜在的なエラーを特定してみましょう:

  1. チェックボックス配列: PHP スクリプトは、最初は「チェックボックス」を単一の要素として扱いました。代わりに、選択されたチェックボックスを正しく取得するには、配列として扱う必要があります。これを修正するには、次のコードを置き換えます:
<input name="checkbox" type="checkbox" value="
                    <?php echo $row['link_id']; ?>">

:

<input name="checkbox[]" type="checkbox" value="
                    <?php echo $row['link_id']; ?>">
  1. クエリ実行: PHP コードは渡されませんでした。行を削除するクエリへのデータベース接続。この省略により、クエリの実行が失敗しました。これを修正するには、クエリを実行する前に次の行を追加します。
$result = mysqli_query($dbc, $sql);

ここで、"$dbc" はデータベース接続を表します。

Implementation

With these調整により、[削除] ボタンをクリックすると、PHP スクリプトが選択した行を正しく削除するようになりました。これを処理する更新された PHP コードは次のとおりです:

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 ($result) {
        echo '<meta http-equiv="refresh" content="0;URL=view_links.php">';
    }
}

これらの手順に従うと、チェックボックスと PHP を使用したユーザーの選択に基づいてデータベース テーブルから複数の行を正常に削除できます。

以上が複数のデータベース行を削除する際の PHP チェックボックス配列とデータベース接続の問題を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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