Mettre à jour un enregistrement d'une table avec PDO
lunick90
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
arthak Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
arthak Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
je viens vous voir pour encore un peu d'aide...
En début de semaine, j'avais un soucis avec la connexion à ma base de données avec PHP, et ben maintenant, c'est pour mettre à jour un enregistrement.
Petite description de ce qui est déjà fait :
j'ai un formulaire qui est pré rempli avec les informations de l'enregistrement désiré. Lorsque je modifie un élément, j'aimerai que cette modification apparaisse également dans ma table. Or ce n'est pas le cas. Après plusieurs recherches et essais, voilà ce que j'ai (et qui ne marche pas) :
Est ce que le code est correct ? si non, qu'est ce qui ne va pas ?
Merci pour votre aide
Bonne soirée/nuit
Cordialement,
Lunick
je viens vous voir pour encore un peu d'aide...
En début de semaine, j'avais un soucis avec la connexion à ma base de données avec PHP, et ben maintenant, c'est pour mettre à jour un enregistrement.
Petite description de ce qui est déjà fait :
j'ai un formulaire qui est pré rempli avec les informations de l'enregistrement désiré. Lorsque je modifie un élément, j'aimerai que cette modification apparaisse également dans ma table. Or ce n'est pas le cas. Après plusieurs recherches et essais, voilà ce que j'ai (et qui ne marche pas) :
$sql = $bdd->prepare("UPDATE table SET att1 = :nom WHERE t.id = :id"); $sql->execute(array('id' => $id, 'nom' => $_POST['nom']));
Est ce que le code est correct ? si non, qu'est ce qui ne va pas ?
Merci pour votre aide
Bonne soirée/nuit
Cordialement,
Lunick
A voir également:
- Mettre à jour un enregistrement d'une table avec PDO
- Table ascii - Guide
- Mettre a jour chrome - Accueil - Applications & Logiciels
- Table des matières word - Guide
- Mise a jour windows 10 - Accueil - Mise à jour
- Mettre a jour chromecast - Accueil - Guide TV et vidéo
8 réponses
bonjour,
afficher l'erreur, ça aide
"t.id" ? A quoi fait référence t ?
afficher l'erreur, ça aide
if ($sql->execute(array('id' => $id, 'nom' => $_POST['nom'])) == false{ print_r($sql->errorInfo()); } else { echo "Requête exécutée"; }
"t.id" ? A quoi fait référence t ?
Si "t" est un alias de ta table, enleve ce "t." car il n'y a pas mention d'alias dans ta requête. Si tu as bien une table qui s'appelle "t", il faut que tu l'ajoutes dans ton FROM.
Bonsoir,
merci pour les réponses apportées.
Désolé pour l'erreur, mais t est en fait table !! une erreur que j'ai fait en écrivant ce bout de code, que je n'ai pas sur mon formulaire !
L'erreur était une faute de cote (') : j'en avais mis pour les attributs dans la requête, alors qu'il n'en faut pas. exemple à ne pas faire :
Par contre, j'ai toujours un problème au niveau de l'enregistrement de mes modifications.
Mon formulaire s'affiche sur ma_premiere_page.php?id=[une_variable]. Le form de ce formulaire à une action sur une autre page que celle en cours :
Est ce un problème ?
Par contre, si je fais :
l'enregistrement est bien mis à jour.
Comment ça se fait ?
Merci pour votre aide
Cordialement
Lunick
merci pour les réponses apportées.
Désolé pour l'erreur, mais t est en fait table !! une erreur que j'ai fait en écrivant ce bout de code, que je n'ai pas sur mon formulaire !
L'erreur était une faute de cote (') : j'en avais mis pour les attributs dans la requête, alors qu'il n'en faut pas. exemple à ne pas faire :
UPDATE table SET 'att1' = 'nom' WHERE 'id' = 2
Par contre, j'ai toujours un problème au niveau de l'enregistrement de mes modifications.
Mon formulaire s'affiche sur ma_premiere_page.php?id=[une_variable]. Le form de ce formulaire à une action sur une autre page que celle en cours :
<form action="ma_seconde_page.php?id=', $id ,'" method="POST">
Est ce un problème ?
Par contre, si je fais :
<form action="ma_premiere_page.php?id=', $id ,'" method="POST">
l'enregistrement est bien mis à jour.
Comment ça se fait ?
Merci pour votre aide
Cordialement
Lunick
En l'occurence, si id est l'un de tes champs de formulaire, tu devrais plutôt utiliser la méthode GET qui génère automatiquement les paramètres liés au formulaire.
Envoi vers la page "ma_premiere_page.php?id=tel-id".
Pour ton histoire de page un et page deux, tout dépend des différents traitements que tu effectues sur telle ou telle page.
<form action="ma_premiere_page.php" method="GET">
Envoi vers la page "ma_premiere_page.php?id=tel-id".
Pour ton histoire de page un et page deux, tout dépend des différents traitements que tu effectues sur telle ou telle page.
D'accord, mais du coup ton code avec des virgules de chaque coté du $id, c'est quoi ? Parce que je vois p trop à quoi ça correspond.. Du JavaScript ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour passer d'une page à une autre, lorsque je "joue" avec la base de données, je mets l'id dans le paramètre GET de mes pages. Et comme j'en ai besoin plusieurs fois par page, j'initialise une variable $id = $_GET['id'] . d'ou ce $id entre les virgules.
C'est pas bien de faire comme ça ?
C'est pas bien de faire comme ça ?
Si c'est du php la concaténation est un point, je pense qu'il me manque le code qui est autour pour comprendre le problème..
--
--
Bonjour,
je ne trouve toujours rien pour résoudre mon problème.
Si vous le souhaitez, pour comprendre le problème, je peux vous envoyer les deux pages qui me posent problème ainsi que la base (qui n'est absolument pas confidentielle).
Ce que je n'arrive pas à comprendre, c'est pourquoi lorsque l'action de mon form reste sur la même page, l'UPDATE fonctionne alors que si cette action pointe sur une autre page, ça coince.... ? une erreur de manip' ?
Merci de votre aide
Cordialement,
Lunick
je ne trouve toujours rien pour résoudre mon problème.
Si vous le souhaitez, pour comprendre le problème, je peux vous envoyer les deux pages qui me posent problème ainsi que la base (qui n'est absolument pas confidentielle).
Ce que je n'arrive pas à comprendre, c'est pourquoi lorsque l'action de mon form reste sur la même page, l'UPDATE fonctionne alors que si cette action pointe sur une autre page, ça coince.... ? une erreur de manip' ?
Merci de votre aide
Cordialement,
Lunick