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   -
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) :
$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:

8 réponses

dan-b Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   7
 
bonjour,

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 ?
0
arthak Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
arthak Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Pas ton FROM, mais ton UPDATE dans ce cas.
0
lunick90 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
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 :
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
0
arthak Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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.

<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.
0
lunick90 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
la page un permet de voir un enregistrement, alors que la page deux permet de le modifier. Et donc, une fois qu'un enregistrement est modifié, on retourne sur la page un.
0
arthak Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lunick90 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0
arthak Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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..

--
0
lunick90 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
arthak Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Je veux bien regarder.

--
0