Formular veröffentlichen und mehrere Zeilen mit MySQL aktualisieren
Problem:
Sie haben ein erstellt Formular, das alle Fotos mit einer bestimmten Galerie-ID abruft und es Benutzern ermöglicht, ihre Titel und Tags zu aktualisieren. Der aktuelle Code aktualisiert jedoch keine Zeilen in der Datenbank.
Formularstruktur:
Das Formular generiert eine HTML-Liste von Fotos mit Eingabefeldern zum Aktualisieren dieser Titel, Tags und versteckte Felder zur Identifizierung ihrer IDs.
Update-Abfrage:
Die Update-Abfrage durchläuft jedes übermittelte Formular und führt für jedes Foto eine separate UPDATE-Anweisung aus . Wie codiert kann die Abfrage jedoch nicht korrekt auf die Formulardaten zugreifen.
Lösung:
Um mehrere Zeilen erfolgreich zu aktualisieren, müssen Sie die Formulardaten übermitteln als Arrays und durchlaufen Sie sie in der Aktualisierungsabfrage.
Formularaktualisierung:
Ändern Sie die Eingabefelder, um Werte als Arrays zu übermitteln:
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' />";
Umschreiben der Abfrage aktualisieren:
Durchlaufen Sie die Datenarrays des übermittelten Formulars:
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)); }
Dieser aktualisierte Code durchläuft die übermittelten Formulardaten korrekt und extrahiert die aktualisierten Werte , und führen Sie die UPDATE-Anweisung für jedes Foto aus, um mehrere Zeilen in Ihrer MySQL-Datenbank erfolgreich zu aktualisieren.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich mehrere Zeilen in einer MySQL-Datenbank mithilfe eines Formulars?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!