Mettre à jour base de données via formulaire php UPDATE
Résolu
Em2teur
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Em2teur Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Em2teur Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai eu la folle idée de créer un site sur lequel l'utilisateur peut répondre à plusieurs formulaires après avoir activé sa session. Tout fonctionne parfaitement sauf une chose : UPDATE.
Je vous explique rapidement : je souhaite que l'utilisateur puisse remplir son formulaire à la vitesse qu'il souhaite. Ainsi, il peut se déconnecter puis revenir plus tard sur son formulaire en se connectant à nouveau et reprendre là où il en était. Le problème est qu'à chaque fois qu'il valide son formulaire modifié, la requête UPDATE n'est pas comprise. Si l'utilisateur utilise pour la première fois le formulaire, pas de soucis, j'arrive à insérer une nouvelle ligne comprenant les informations du formulaire dans ma base de données.
J'ai regardé plusieurs forums pour trouver mon erreur, je n'y suis pas arrivée. Voici mon code simplifié :
J'espère que vous pourrez m'aider. Merci à vous !
J'ai eu la folle idée de créer un site sur lequel l'utilisateur peut répondre à plusieurs formulaires après avoir activé sa session. Tout fonctionne parfaitement sauf une chose : UPDATE.
Je vous explique rapidement : je souhaite que l'utilisateur puisse remplir son formulaire à la vitesse qu'il souhaite. Ainsi, il peut se déconnecter puis revenir plus tard sur son formulaire en se connectant à nouveau et reprendre là où il en était. Le problème est qu'à chaque fois qu'il valide son formulaire modifié, la requête UPDATE n'est pas comprise. Si l'utilisateur utilise pour la première fois le formulaire, pas de soucis, j'arrive à insérer une nouvelle ligne comprenant les informations du formulaire dans ma base de données.
J'ai regardé plusieurs forums pour trouver mon erreur, je n'y suis pas arrivée. Voici mon code simplifié :
session_start(); $_POST['pseudo']=$_SESSION["pseudo"]; include("connexionPDO.php"); $req = $bdd-> query('SELECT pseudo FROM contexte WHERE pseudo="'.$_SESSION['pseudo'].'"'); $resultat=$req->fetch(); if ($resultat['pseudo']!=$_SESSION['pseudo']) //si l'utilisateur remplit pour la première fois le formulaire { //insertion de données variables dans la base de données test, table contexte include("connexionPDO.php"); $req=$bdd->prepare('INSERT INTO contexte(pseudo,territoire, caract, demo, eco) VALUES (?,?, ?, ?, ?)'); $req->execute(array( $_SESSION['pseudo'],$_POST['territoire'], $_POST['caracteristique_'], $_POST['demographie_'], $_POST['economie_'])); } else { //si le pseudo est déjà dans la base, on met à jour include("connexionPDO.php"); //récupération de la valeur des champs $terri=$_POST['territoire']; $caract=$_POST['caracteristique_']; $demo=$_POST['demographie_'];$eco=$_POST['economie_']; $req =$bdd->exec('UPDATE contexte(pseudo,territoire, caract, demo, eco) SET territoire=$terri, caract=$caract, demo=$demo,eco=$eco WHERE pseudo="'.$_SESSION['pseudo'].'"'); } header('Location: XXXX.php');
J'espère que vous pourrez m'aider. Merci à vous !
A voir également:
- Modifier des données mysql via formulaire php
- Whatsapp formulaire opposition - Guide
- Fuite données maif - Guide
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
Oui j'ai essayé, elle marche lorsque j'écris les valeurs que je veux mettre à jour
Quelle est la requête que tu as essayé ?
ça, çamarche
Je ne vois pas comment utilisé exactement la requête générée par mon code sinon
$req =$bdd->exec('UPDATE contexte(pseudo,territoire, caract, demo, eco) SET territoire=$terri, caract=$caract, demo=$demo,eco=$eco WHERE pseudo="'.$_SESSION['pseudo'].'"');
Tu fais :
$Sql='UPDATE contexte(pseudo,territoire, caract, demo, eco) SET territoire=$terri, caract=$caract, demo=$demo,eco=$eco WHERE pseudo="'.$_SESSION['pseudo'].'"';
echo $Sql;
$req =$bdd->exec($Sql);
UPDATE contexte(pseudo,territoire, caract, demo, eco) SET territoire=$terri, caract=$caract, demo=$demo,eco=$eco WHERE pseudo="mimi"
Aucun message d'erreur comme avant, mais ma base de données ne prend pas en compte les modifications.
si je rajoute un echo $terri; ça m'affiche bien ce qui a été rentré dans le formulaire. Ce UPDATE est un mystère... Si tu as une autre idée... Merci :)