Maison > Article > développement back-end > Comment mettre à jour plusieurs lignes dans MySQL avec les données de formulaire publiées ?
Mise à jour de plusieurs lignes avec les données de formulaire publiées dans MySQL
Lorsque vous travaillez avec des formulaires qui nécessitent la mise à jour de plusieurs lignes dans une base de données, il est essentiel de gérer correctement les soumissions de données. Cet article aborde un scénario spécifique dans lequel un formulaire est utilisé pour collecter des informations (titre et balises) pour plusieurs photos et mettre à jour leurs enregistrements dans une base de données MySQL.
Le formulaire
Le formulaire rassemble des données pour chaque photo liée à un identifiant de galerie spécifique. Pour chaque photo, il comprend des entrées pour le titre et les balises, ainsi qu'une entrée cachée pour l'identité de la photo. Ces informations sont soumises lors du traitement du formulaire.
La requête de mise à jour
La requête de mise à jour est destinée à mettre à jour le titre et les balises de chaque photo en fonction des données publiées. Cependant, le problème survient lorsque vous essayez de lier des paramètres à la requête.
Solution
La clé pour résoudre ce problème est de soumettre les champs de saisie avec les noms de tableau, comme plusieurs champs portant le même nom ne peuvent pas être traités comme des champs individuels. En les soumettant sous forme de tableaux, nous pouvons parcourir les données publiées et mettre à jour chaque ligne en utilisant l'ID correspondant.
Code ajusté
L'extrait de code modifié pour l'entrée HTML champs est le suivant :
<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>
Le code mis à jour pour la boucle de requête de mise à jour :
<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>
En soumettant les données du formulaire sous forme de tableaux et en itérant sur les valeurs, vous pouvez mettre à jour efficacement plusieurs lignes dans la base de données en fonction des informations publiées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!