Page 1 sur 1

Soucs avec Update

Posté : 07 nov. 2006, 00:01
par alaingpl
Bonjour,

J'ai un soucis pour réaliser des modifications sur la bd.

Je souhaite modifier les mêmes infos dans plusieurs tables en même temps.
$sql = "UPDATE table_verif, quiz_visiteur, inscriptions SET nomvisiteur='$Nom_visiteur', passvisiteur='$password', motfam='$motfam', Email_visiteur='$Email_visiteur', formation='$formation', nformation='$nformation'  WHERE nomvisiteur='$_SESSION[nomvisiteur]' ";
	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
et j'ai le message d'erreur suivant
Erreur SQL !UPDATE table_verif, quiz_visiteur, inscriptions SET nomvisiteur='loge', passvisiteur='dc1d71bbb5c4d2a5e936db79ef10c19f', motfam='log', Email_visiteur='log', formation='restaurant', nformation='cap1' WHERE nomvisiteur='log' 
Column 'nomvisiteur' in field list is ambiguous
Je comprends qu'il y a une ambiguité avec le champ 'nomvisiteur' qui est présent dans les 3 tables.
J'ai essayé plusieurs solutions sans succès.
Un peu d'aide serait la bienvenue. Merci d'avance

Posté : 07 nov. 2006, 00:18
par ouckileou
S'il est présent dans les 3 tables, MySQL ne va pas choisir pour toi lequel mettre à jour, à toi de lui indiquer donc.

Code : Tout sélectionner

table.colonne

Posté : 07 nov. 2006, 01:12
par alaingpl
Bonsoir,

Merci de m'aider mais pourriez vous me mettre un peu plus sur la voie.

J'ai saisi qu'il faut lui indiquer la colonne et j'ai donc essayer comme avec "INSERT INTO table (champs) mais bien sûr ça ne fonctionne pas.

J'ai à nouveau essayé d'autres solutions sans succès. Mes recherches dans les aides Mysql sont restées vaines.

d'habitude j'arrive tant bien que mal à m'en sortir mais là ....je sèche

Merci d'avance

Posté : 07 nov. 2006, 10:12
par Vikchill
Ca aurait été plus simple pour toi de le faire en trois requêtes, il vaut mieux apprendre à marcher avant d'apprendre à courir ;)

Ce que ouckileou essayait de te dire, c'est que si ton champs nomvisiteur est présent dans plusieurs tables MySQL ne sait pas qui tu cherches à mettre à jour. Il faut donc lui dire en préfixant le champs par le nom de la table, comme ça:
$sql = "UPDATE table_verif, quiz_visiteur, inscriptions SET table_verif.nomvisiteur..."

Posté : 08 nov. 2006, 22:02
par alaingpl
Merci pour les infos qui m'ont bien aidé.