Ich versuche, mehrere Zeilen in meiner Datenbank mit Daten aus einem HTML-Formular Daten über AJAX zu aktualisieren. Ich habe kein Problem mit der Aktualisierung der Datenbank, aber ich habe mehrere Abfragen verwendet, um jede Zeile zu aktualisieren. Was ist der richtige Weg, um mehrere Zeilen aus einem großen Formular mit AJAX zu aktualisieren? Eine foreach Schleife?Aktualisieren mehrerer Zeilen in MySQL-Datenbank mit serialisierten Formulardaten
if (isset($_POST['updateData'])) {
parse_str($_POST['fields']);
$update1 = $db->execute("UPDATE content SET content_text=? WHERE page_id = '".$page_id."' AND lang_code = '".$lang_code."' AND content_id =1", array($field1));
$update2 = $db->execute("UPDATE content SET title=?, content_text=? WHERE page_id = '".$page_id."' AND lang_code = '".$lang_code."' AND content_id =2", array($field2_title, $field2));
$update3 = $db->execute("UPDATE content SET title=? WHERE page_id = '".$page_id."' AND lang_code = '".$lang_code."' AND content_id =3", array($field3_title));
}
Meine Datenbank
ID | content_id | page_id | lang_code | title | content_text |
---------------------------------------------------------------------
1 | 1 | 2 | en | | text1 |
2 | 2 | 2 | en | title2 | text2 |
3 | 3 | 2 | en | title3 | |
Meine Form wie das aussieht:
<input name="field1">
<input name="field2_title">
<input name="field2">
<input name="field3_title">
Mein Skript:
var form_data = $(this).serialize();
$.ajax({
type : 'POST',
url : '#',
data : {
updateData : 1,
fields : form_data
}
});
Ich denke, das ist das, was ich brauche! Ich werde Ihre Antwort markieren, aber mit Ihrer Aktualisierungsabfrage stimmt etwas nicht. Array ($ title, $ content, $ id) muss Array ($ title, $ content) sein und Sie sollten hinzufügen: content_id = '". $ id." zur Abfrage. Vielen Dank! – Dejavu
Da HTML vom Client bearbeitet werden kann und die ID der Schlüssel des Feldes ist, ist es sicherer, die Zeichenfolge zumindest zu umgehen. – Nergal