Publier le formulaire et mettre à jour plusieurs lignes avec MySQL
Problème :
Vous avez créé un formulaire qui récupère toutes les photos avec un identifiant de galerie spécifique et permet aux utilisateurs de mettre à jour leurs titres et balises. Cependant, le code actuel ne met à jour aucune ligne dans la base de données.
Structure du formulaire :
Le formulaire génère une liste HTML de photos, avec des champs de saisie pour mettre à jour leur titres, balises et champs cachés pour identifier leurs identifiants.
Requête de mise à jour :
La requête de mise à jour parcourt chaque formulaire soumis et exécute une instruction UPDATE distincte pour chaque photo . Cependant, telle que codée, la requête ne parvient pas à accéder correctement aux données du formulaire.
Solution :
Pour mettre à jour avec succès plusieurs lignes, vous devez soumettre les données du formulaire sous forme de tableaux et parcourez-les dans la requête de mise à jour.
Mise à jour du formulaire :
Modifiez les champs de saisie pour soumettre les valeurs sous forme de tableaux :
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' />";
Mettre à jour la réécriture de la requête :
Parcourir les tableaux de données du formulaire soumis :
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)); }
Ce code mis à jour parcourra correctement les données du formulaire soumis et extraira les valeurs mises à jour. et exécutez l'instruction UPDATE pour chaque photo, en mettant à jour avec succès plusieurs lignes dans votre base de données MySQL.
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!