ホームページ >バックエンド開発 >PHPチュートリアル >投稿されたフォーム データを使用して MySQL の複数の行を更新するにはどうすればよいですか?
MySQL で投稿されたフォーム データを使用して複数の行を更新する
データベース内の複数の行を更新する必要があるフォームを操作する場合、次の処理が不可欠です。データは正しく送信されます。この記事では、フォームを使用して複数の写真の情報 (タイトルとタグ) を収集し、MySQL データベース内のレコードを更新する特定のシナリオについて説明します。
フォーム
このフォームは、特定のギャラリー ID にリンクされた各写真のデータを収集します。各写真には、タイトルとタグの入力と、写真 ID の非表示の入力が含まれています。この情報は、フォームの処理時に送信されます。
更新クエリ
更新クエリは、投稿されたデータに基づいて各写真のタイトルとタグを更新することを目的としています。ただし、パラメータをクエリにバインドしようとすると問題が発生します。
解決策
この問題を解決する鍵は、次のように配列名を使用して入力フィールドを送信することです。同じ名前の複数のフィールドを個別のフィールドとして扱うことはできません。これらを配列として送信することで、投稿されたデータをループし、対応する ID を使用して各行を更新できます。
調整されたコード
HTML 入力の変更されたコード スニペットフィールドは次のとおりです:
<code class="html">echo "<input type='text' name='photo_title[]' value='$title' /><br />"; echo "<input type='text' name='photo_tags[]' value='$tags' />"; echo "<input type='hidden' name='photo_id[]' value='$id' />";</code>
更新クエリ ループの更新されたコード:
<code class="php">foreach ($_POST['photo_id'] as $key => $photo_id) { $id = $photo_id; $title = $_POST['photo_title'][$key]; $tags = $_POST['photo_tags'][$key]; $sql = "UPDATE photos SET title=?, tags=? WHERE id=?"; $query = $db->prepare($sql); $query->execute(array($title, $tags, $id)); }</code>
フォーム データを配列として送信し、値を反復処理することで、複数のフィールドを効果的に更新できます。投稿された情報に基づいてデータベース内の行を作成します。
以上が投稿されたフォーム データを使用して MySQL の複数の行を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。