Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2011, 14h41   #1
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Par défaut requête sur 2 tables

Salut à tous,
voila mon soucis:
Code :
1
2
3
$sql="SELECT $table.cle,$table.centre,$table.date,$table.heure,$table.titre,$table.x_num,$table.y_num,$table.msg,$table.utilisateur,$table.avancement,$table.histo_start,$table.site,$table.po,$table.POIDS,$table.poste_source,$table.depart,$table.heure_realisee,$table.periode,$table.type,$table.fichier,$table.fdm,$table.fdmca,$table.maj,$table.i_nip,$table.i_nitst,$table.message_prive,$table_nip.ouvrage,$table_nip.travaux,$table_nitst.objet,$table_nitst.n_bt,$table_nitst.observations,$table_sites.BEX FROM $table,$table_nip,$table_nitst,$table_sites WHERE (date like '%$us_date%') AND $table_nip.cle=$table.i_nip AND $table_nitst.cle=$table.i_nitst ";
$sql=$sql. $criteres;
  $sql=$sql. " ORDER BY $table_sites.BEX";
Résultat de la requête:
1052: Champ: 'centre' dans where clause est ambigu

D'où cela peut-i venir??
Merci
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h44   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
il faut mettre le nom de la table avant

latable.centre
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h48   #3
Membre du Club
 
Avatar de l.laurent60
 
Inscription : avril 2009
Messages : 163
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2009
Messages : 163
Points : 44
Points : 44
N'y a t il pas confusion dans les tables, je ne croix pas avoir vu d'alias dans le nom des tables ?

SELECT A.champ , B.champ
FROM `table1` A
`table2` B
....
l.laurent60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h56   #4
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Citation:
Envoyé par stealth35 Voir le message
il faut mettre le nom de la table avant

latable.centre

$table.centre

c'est bien ce que j'ai fait???
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h58   #5
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Citation:
Envoyé par l.laurent60 Voir le message
N'y a t il pas confusion dans les tables, je ne croix pas avoir vu d'alias dans le nom des tables ?

SELECT A.champ , B.champ
FROM `table1` A
`table2` B
....
Code :
$sql="SELECT ...,$table_nitst.observations,$table_sites.BEX FROM $table,$table_nip,$table_nitst,$table_sites....

c'est pas bon??
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 15h05   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
fais un echo $sql; pour voir ce que ca donne au final
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 15h29   #7
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
bonjour

tu prends ton code initial

Code :
1
2
3
$sql="SELECT $table.cle,$table.centre,$table.date,$table.heure,$table.titre,$table.x_num,$table.y_num,$table.msg,$table.utilisateur,$table.avancement,$table.histo_start,$table.site,$table.po,$table.POIDS,$table.poste_source,$table.depart,$table.heure_realisee,$table.periode,$table.type,$table.fichier,$table.fdm,$table.fdmca,$table.maj,$table.i_nip,$table.i_nitst,$table.message_prive,$table_nip.ouvrage,$table_nip.travaux,$table_nitst.objet,$table_nitst.n_bt,$table_nitst.observations,$table_sites.BEX FROM $table,$table_nip,$table_nitst,$table_sites WHERE (date like '%$us_date%') AND $table_nip.cle=$table.i_nip AND $table_nitst.cle=$table.i_nitst ";
$sql=$sql. $criteres;
  $sql=$sql. " ORDER BY $table_sites.BEX";
et tu le remplaces par presque la même chose
Code :
1
2
3
4
5
6
 
$sql="SELECT $table.cle,$table.centre,$table.date,$table.heure,$table.titre,$table.x_num,$table.y_num,$table.msg,$table.utilisateur,$table.avancement,$table.histo_start,$table.site,$table.po,$table.POIDS,$table.poste_source,$table.depart,$table.heure_realisee,$table.periode,$table.type,$table.fichier,$table.fdm,$table.fdmca,$table.maj,$table.i_nip,$table.i_nitst,$table.message_prive,$table_nip.ouvrage,$table_nip.travaux,$table_nitst.objet,$table_nitst.n_bt,$table_nitst.observations,$table_sites.BEX FROM $table,$table_nip,$table_nitst,$table_sites WHERE (date like '%$us_date%') AND $table_nip.cle=$table.i_nip AND $table_nitst.cle=$table.i_nitst ";
$sql=$sql. $criteres;
  $sql=$sql. " ORDER BY $table_sites.BEX";
 
echo '<br />code à mettre sur le forum pour <strong>stealth35</strong><textarea style="background-color:#DCDCDC; color:#2E8B57" >',$sql,'</textarea>';
et tu nous colles sur le forum avec des balises [ C O D E ] ce qui s'affiche en vert sur fond gris.

Plus simple je ne peux pas.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 15h49   #8
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Code :
SELECT acrbo.cle,acrbo.centre,acrbo.date,acrbo.heure,acrbo.titre,acrbo.x_num,acrbo.y_num,acrbo.msg,acrbo.utilisateur,acrbo.avancement,acrbo.histo_start,acrbo.site,acrbo.po,acrbo.POIDS,acrbo.poste_source,acrbo.depart,acrbo.heure_realisee,acrbo.periode,acrbo.type,acrbo.fichier,acrbo.fdm,acrbo.fdmca,acrbo.maj,acrbo.i_nip,acrbo.i_nitst,acrbo.message_prive,nip.ouvrage,nip.travaux,nitst.objet,nitst.n_bt,nitst.observations,sites.BEX FROM acrbo,nip,nitst,sites WHERE (date like '%2011-02-08%') AND nip.cle=acrbo.i_nip AND nitst.cle=acrbo.i_nitst  and (centre like '%%%')  and ( (avancement like '%%%')  and (utilisateur like '%%')   and (site like '%%')   and (titre like '%%%')   or (utilisateur like 'admin%') ) ORDER BY sites.BEX
c'est ça??
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 15h52   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par fthem Voir le message
Code :
SELECT acrbo.cle,acrbo.centre,acrbo.date,acrbo.heure,acrbo.titre,acrbo.x_num,acrbo.y_num,acrbo.msg,acrbo.utilisateur,acrbo.avancement,acrbo.histo_start,acrbo.site,acrbo.po,acrbo.POIDS,acrbo.poste_source,acrbo.depart,acrbo.heure_realisee,acrbo.periode,acrbo.type,acrbo.fichier,acrbo.fdm,acrbo.fdmca,acrbo.maj,acrbo.i_nip,acrbo.i_nitst,acrbo.message_prive,nip.ouvrage,nip.travaux,nitst.objet,nitst.n_bt,nitst.observations,sites.BEX FROM acrbo,nip,nitst,sites WHERE (date like '%2011-02-08%') AND nip.cle=acrbo.i_nip AND nitst.cle=acrbo.i_nitst  and (centre like '%%%')  and ( (avancement like '%%%')  and (utilisateur like '%%')   and (site like '%%')   and (titre like '%%%')   or (utilisateur like 'admin%') ) ORDER BY sites.BEX
c'est ça??

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SELECT 
	acrbo.cle,acrbo.centre,acrbo.date,acrbo.heure,acrbo.titre,
	acrbo.x_num,acrbo.y_num,acrbo.msg,acrbo.utilisateur,
	acrbo.avancement,acrbo.histo_start,acrbo.site,
	acrbo.po,acrbo.POIDS,acrbo.poste_source,acrbo.depart,
	acrbo.heure_realisee,acrbo.periode,acrbo.type,
	acrbo.fichier,acrbo.fdm,acrbo.fdmca,acrbo.maj,
	acrbo.i_nip,acrbo.i_nitst,acrbo.message_prive,
	nip.ouvrage,nip.travaux,nitst.objet,
	nitst.n_bt,nitst.observations,sites.BEX 
	FROM acrbo,nip,nitst,sites 
	WHERE (date like '%2011-02-08%') 
		AND nip.cle=acrbo.i_nip 
		AND nitst.cle=acrbo.i_nitst  
		and (centre like '%%%')  
		and ( (avancement like '%%%')  
		and (utilisateur like '%%')   
		and (site like '%%')   
		and (titre like '%%%')   
		or (utilisateur like 'admin%') ) 
		ORDER BY sites.BEX
et la : and (centre like '%%%') y'a pas le nom de la table, pareil pour les autres
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 15h56   #10
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
Citation:
Envoyé par stealth35 Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SELECT 
	acrbo.cle,acrbo.centre,acrbo.date,acrbo.heure,acrbo.titre,
	acrbo.x_num,acrbo.y_num,acrbo.msg,acrbo.utilisateur,
	acrbo.avancement,acrbo.histo_start,acrbo.site,
	acrbo.po,acrbo.POIDS,acrbo.poste_source,acrbo.depart,
	acrbo.heure_realisee,acrbo.periode,acrbo.type,
	acrbo.fichier,acrbo.fdm,acrbo.fdmca,acrbo.maj,
	acrbo.i_nip,acrbo.i_nitst,acrbo.message_prive,
	nip.ouvrage,nip.travaux,nitst.objet,
	nitst.n_bt,nitst.observations,sites.BEX 
	FROM acrbo,nip,nitst,sites 
	WHERE (date like '%2011-02-08%') 
		AND nip.cle=acrbo.i_nip 
		AND nitst.cle=acrbo.i_nitst  
		and (centre like '%%%')  
		and ( (avancement like '%%%')  
		and (utilisateur like '%%')   
		and (site like '%%')   
		and (titre like '%%%')   
		or (utilisateur like 'admin%') ) 
		ORDER BY sites.BEX
et la : and (centre like '%%%') y'a pas le nom de la table, pareil pour les autres
je l'écris comment alors??
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 15h58   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
bah pareil que le select : and (acrbo.centre like '%%%')
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h00   #12
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
je suggère que tous les like '%%' soient remplacés par des like '%' ce qui veut dire exactement la même chose!

EDIT: j'irai même plus loin en disant que c'est équivalent à NOT NULL. quelqu'un confirme?
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h02   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par gene69 Voir le message
je suggère que tous les like '%%' soient remplacés par des like '%' ce qui veut dire exactement la même chose!
voir rien mettre puisque ça veut dire LIKE TOUT

__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h04   #14
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
pas tout à fait d'accord. Pour moi ça veut dire tout ce qui est initialisé.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h06   #15
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par gene69 Voir le message
pas tout à fait d'accord. Pour moi ça veut dire tout ce qui est initialisé.
oui ca ne marche pas si la variable est NULL, par contre si elle est vide il match
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h11   #16
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
OHHHHHHHHHHHHH
chui pomé là...
ma requête fini comme ça:
Code :
WHERE (date like '%$us_date%') AND $table_nip.cle=$table.i_nip AND $table_nitst.cle=$table.i_nitst ";
que dois je rajoutter?
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h14   #17
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par fthem Voir le message
OHHHHHHHHHHHHH
chui pomé là...
fais juste comme je t'ai dis, le reste on verra apres
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h24   #18
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 253
Points : 19
Points : 19
j'ai rajoutté:
Code :
WHERE (date like '%$us_date%') AND (acrbo.centre like '%$centre%')
ça me donne:
Code :
acrbo,nip,nitst,sites WHERE (date like '%2011-02-08%') AND (acrbo.centre like '%%') AND
C'est ce que tu veux??
fthem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h32   #19
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par fthem Voir le message
Code :
WHERE (date like '%$us_date%') AND (acrbo.centre like 'QUOI????')
tu vois mon proléme???
t'es têtu, oublie le coup des % pour le moment, en plus t'as pas corrigé date
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h34   #20
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
c'est ça que j'aime pas avec les débutants, c'est qu'ils pensent qu'on peut savoir le but ultime de leur développement juste parce qu'on comprends un peu mieux le code qu'ils écrivent.

Alors que non. Si tu sais expliquer ce que tu veux, alors on pourra te dire comment le faire. Si tu ne sais pas pourquoi tu veux/dois filtrer sur centre alors je serai bien embêté de t'expliquer pourquoi il faut le faire.

en fait je crois que j'ai compris pourquoi tu peux avoir des formes like '%%', parce que tu dois avoir des bouts de code comme

Code :
1
2
3
 
$variable = '';
$sql = ' table.centre LIKE \'%'.$variable.'%\' ';
c'est pas très grave.

Explique quel sont les enregistrements que tu dois retrouver dans la base, on te dira quelles conditions mettre (si jamais on comprend ton schéma).
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h57.


 
 
 
 
Partenaires

Hébergement Web