Page 1 sur 1

soucis avec update

Posté : 09 mai 2015, 19:17
par bob60
Bonjour,

J'aimerais utiliser un update, avec un formulaire, sur tous les champs, sauf l'id auto-incrément, de ma table adminitration.
Voici la structure de ma table administration :

id id_connexion prenom nom mot_de_pass email
et les valeur correspondante:
0 bob bobby vanth $2y$.... [email protected]

Dans mon formulaire j'ai cela
nom utilisateur  : bob
prénom : bobby
nom :  vanth
email : [email protected]
mot de pass : laissez vide pour ne pas le modifier
nouveau pass : laissez vide pour ne pas le modifier
confirme nouveau pass : laissez vide pour ne pas le modifier
comme l'utilisateur à le droit de modifier son profil en entier, donc j'ai essayer ceci :
$connexion_base_de_donnees = new PDO('connexion a la base')

$mettre_a_jour = $connexion_base_de_donnees->prepare("UPDATE administration SET id_connexion = :id_connexion, prenom = :prenom, nom = :nom, mot_de_pass = :mot_de_pass, email = :email WHERE .....");
$mettre_a_jour->bindParam(':id_connexion', $valeur);
etc...
l'update devient difficile ! Puisque la seule valeur qu'on ne pas modifier est l'id de l'auto incrémente.
Ma question : Que mettre après WHERE ?

Re: soucis avec update

Posté : 09 mai 2015, 19:31
par tof73
id_connexion = :id_connexion
donc à enlever après set

Re: soucis avec update

Posté : 09 mai 2015, 19:46
par bob60
id_connexion = :id_connexion à pour valeur dans le formulaire ceci : nom d'utilisateur : bob
Or je veux modifier aussi cette valeur
Donc il me semble que id_connexion = :id_connexion a sa place après le SET.

Re: [RESOLU] soucis avec update

Posté : 11 mai 2015, 09:41
par Ryle
Dans le WHERE, tu dois préciser tous les critères te permettant de retrouver le (où les) enregistrement(s) à modifier. Dans ton cas, il n'y a qu'un seul enregistrement à édité, la logique veut donc que tu te bases sur la clé primaire de ta table pour retrouver celui-ci et le mettre à jour.

L'attribut auto-increment de mysql permet la génération automatique d'un nouvel identifiant quand tu insères un enregistrement en base. Une fois enregistré, l'id de celui-ci est conservé et est unique. Il te permet donc justement de l'utiliser en cas de mise à jour de ta table :)