php Unknown column in 'on clause'

php Unknown column in 'on clause' - PHP - Programmation

Marsh Posté le 19-06-2008 à 18:15:27    

bonjour je doit realiser une fonction recherche un exercice et je veus realiser une requete de jointure a 3 tables.quand je teste en local pas de probleme ma requete fonctionne mais dès que je met mon site en ligne ca marche plus et ca marque en page de resultat : Unknown column 'tmarques.idmarque' in 'on clause'
voila ma requete:
SELECT tmarques.*,tcategories.*,tarticles.*
FROM tmarques,tcategories INNER JOIN tarticles ON tmarques.idmarque=tarticles.idmarque AND  tcategories.idcategorie=tarticles.idcategorie
WHERE tcategories.idcategorie LIKE '%colname%' AND tmarques.idmarque = 'colname1'

Reply

Marsh Posté le 19-06-2008 à 18:15:27   

Reply

Marsh Posté le 19-06-2008 à 22:20:30    

1/ c'est pas du php
2/ sgbd, version

Reply

Marsh Posté le 20-06-2008 à 00:50:22    

Salut !
 
ton champ idmarque n'existe pas sur ta version du site "en ligne", c'est quand meme super clair le message !
 
pour inf o les select tatable.* c'est à BANNIR


Message édité par Profil supprimé le 20-06-2008 à 00:52:18
Reply

Marsh Posté le 20-06-2008 à 09:31:31    

je croyais moi aussi que le message etait clair mais quand je consulte mes tables en ligne elles sont strictement identique a celle en local.Tu penses bien que c est la premiere chose que j ai verifier et que si je demande de l aide c que je suis bloquer.
pour le select tatable.* j ai appris comme ca,comment tu selrctionne tes tables toi ?

Reply

Marsh Posté le 20-06-2008 à 13:10:25    

Il te dit de ne pas sélectionner tous les champs (*), mais seulement les champs dont tu as besoin.
 
Le INNER est inutile devant le JOIN, c'est sous entendu.
 
Ton JOIN est pas bon, tu fais la jointure entre tcategories et tarticles alors que dans ta clause ON tu utilises tmarques...
 
Conclusion : tu dois faire deux JOIN.
Un peu de lecture :
http://sqlpro.developpez.com/cours/sqlaz/jointures/


Message édité par CyberDenix le 20-06-2008 à 13:10:46

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 21-06-2008 à 16:49:47    

merci beaucoup cyberdenix c était bien mon "AND" qui fonctionnais pas j'ai donc fait 2 JOIN et fait sauter le INNER e ca fonctionne nickel
encore merci et vive forum hardware

Reply

Marsh Posté le 22-06-2008 à 23:02:35    

un petit essai doume1976 : c'est pas connu de tous, mais tu peux joindre plusieurs tables à une seule avec un seul JOIN :
teste ton FROM ainsi :
FROM (tmarques,tcategories)  
INNER JOIN tarticles ON(tmarques.idmarque=tarticles.idmarque AND tcategories.idcategorie=tarticles.idcategorie)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed