MySQL を使用してフォームを投稿し、複数の行を更新する
問題:
特定のギャラリー ID を持つすべての写真を取得し、ユーザーがタイトルとタグを更新できるようにするフォーム。ただし、現在のコードはデータベース内の行を更新していません。
フォーム構造:
フォームは、写真を更新するための入力フィールドを備えた HTML リストの写真を生成します。タイトル、タグ、ID を識別するための隠しフィールド。
更新クエリ:
更新クエリは送信された各フォームを反復し、写真ごとに個別の UPDATE ステートメントを実行します。 。ただし、コーディングされているように、クエリはフォーム データに正しくアクセスできません。
解決策:
複数の行を正常に更新するには、フォーム データを送信する必要があります。
フォーム更新:
値を配列として送信するように入力フィールドを変更します:
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' />";
クエリ リライトの更新:
送信されたフォーム データ配列を反復処理します:
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)); }
この更新されたコードは、送信されたフォーム データを正しくループし、更新された値を抽出します。 、各写真に対して UPDATE ステートメントを実行し、MySQL データベース内の複数の行を正常に更新します。
以上がフォームを使用して MySQL データベース内の複数の行を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。