Soucs avec Update

Eléphant du PHP | 271 Messages

07 nov. 2006, 00:01

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
Patience et obstination sont des qualités !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

07 nov. 2006, 00:18

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

Eléphant du PHP | 271 Messages

07 nov. 2006, 01:12

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
Patience et obstination sont des qualités !

Eléphant du PHP | 193 Messages

07 nov. 2006, 10:12

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..."

Eléphant du PHP | 271 Messages

08 nov. 2006, 22:02

Merci pour les infos qui m'ont bien aidé.
Patience et obstination sont des qualités !