Heim  >  Artikel  >  Backend-Entwicklung  >  Wie aktualisiere ich mehrere Zeilen in MySQL mit veröffentlichten Formulardaten?

Wie aktualisiere ich mehrere Zeilen in MySQL mit veröffentlichten Formulardaten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 02:10:03312Durchsuche

How to Update Multiple Rows in MySQL with Posted Form Data?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn