Heim > Artikel > Backend-Entwicklung > Wie aktualisiere ich mehrere Zeilen in MySQL mit veröffentlichten Formulardaten?
Aktualisieren mehrerer Zeilen mit veröffentlichten Formulardaten in MySQL
Bei der Arbeit mit Formularen, die die Aktualisierung mehrerer Zeilen in einer Datenbank erfordern, ist dies von entscheidender Bedeutung die Datenübermittlungen korrekt. Dieser Artikel befasst sich mit einem bestimmten Szenario, in dem ein Formular verwendet wird, um Informationen (Titel und Tags) für mehrere Fotos zu sammeln und deren Datensätze in einer MySQL-Datenbank zu aktualisieren.
Das Formular
Das Formular sammelt Daten für jedes Foto, das mit einer bestimmten Galerie-ID verknüpft ist. Für jedes Foto enthält es Eingaben für Titel und Tags sowie eine versteckte Eingabe für die Foto-ID. Diese Informationen werden übermittelt, wenn das Formular verarbeitet wird.
Die Aktualisierungsabfrage
Die Aktualisierungsabfrage soll den Titel und die Tags jedes Fotos basierend auf den veröffentlichten Daten aktualisieren. Das Problem tritt jedoch auf, wenn versucht wird, Parameter an die Abfrage zu binden.
Lösung
Der Schlüssel zur Lösung dieses Problems besteht darin, die Eingabefelder mit Array-Namen zu übermitteln, z Mehrere Felder mit demselben Namen können nicht als einzelne Felder behandelt werden. Indem wir sie als Arrays übermitteln, können wir die veröffentlichten Daten durchlaufen und jede Zeile mit der entsprechenden ID aktualisieren.
Angepasster Code
Der geänderte Codeausschnitt für die HTML-Eingabe Felder lautet wie folgt:
<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>
Der aktualisierte Code für die Update-Abfrageschleife:
<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>
Indem Sie die Formulardaten als Arrays senden und über die Werte iterieren, können Sie mehrere effektiv aktualisieren Zeilen in der Datenbank basierend auf den veröffentlichten Informationen.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich mehrere Zeilen in MySQL mit veröffentlichten Formulardaten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!