Probleme INNER JOIN avec 3 tables [Résolu]

Signaler
Messages postés
75
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
26 mars 2010
-
Messages postés
64
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
8 mars 2012
-
Bonjour amis CSistes.

Je vous appelle aujourd'hui, car j'ai un probleme vraiment bête, mais je ne trouve pas le bon raisonnement qu'il faudrait avoir.

J'ai 3 tables : trombi, event, et evenement :

- trombi (id, nom, prenom)
- evenement (id_evenement, lieu, date)
- event (id_eve, id, id_evenement)

Dans ma page d'affichage d'un evenement en particulier, je souhaite faire afficher les participants.

Voici donc ma requete :


<?php $query "SELECT * FROM trombi INNER JOIN event ON (trombi.id event.id) INNER JOIN evenement ON (evenement.id_evenement = event.id_evenement)" ; 
   $result = mysql_query($query) or die ("Lecture des demandes impossible jointure

");
  $nb_result = mysql_num_rows($result); ?>




Mon probleme est que soit le message d'erreur "Lecture des demandes impossible jointure apparait, soit il m'affiche carrement tous les enregistrement qu'il y a eu dans la table event.
Ou est-ce que je me trompe dans le raisonnement ?"

Merci de votre aide

4 réponses

Messages postés
64
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
8 mars 2012

Pour les erreurs de syntaxe fais afficher ta requête à l'aide d'un echo en PHP tu devrais arriver à visualiser plus facilement d'où vient le problème.

NIRVANA is never enough ! It's in the spirit !
Messages postés
64
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
8 mars 2012

Bonjour
A la place de :
or die ("Lecture des demandes impossible jointure

");
Met :
or die(mysql_error());

dans ton code à la place du texte et dis nous ce qui est renvoyé.

NIRVANA is never enough ! It's in the spirit !
Messages postés
75
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
26 mars 2010

Tiens, je ne connaissais pas cette astuce...

Il me marque maintenant
Column 'id' in field list is ambiguous



Je comprends le message, mais est-ce qu'il y a une autre solution que de modifier ma BDD et toutes mes fonctions reprennant le champ id ?
Messages postés
75
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
26 mars 2010

Je viens de legerement modifier ma requete :




<?php $query = "SELECT * FROM trombi WHERE id_evenement='$id_evenement' INNER JOIN event ON (trombi.id = event.id) INNER JOIN evenement ON (evenement.id_evenement = event.id_evenement)" ; 
   $result = mysql_query($query) or die (mysql_error());
  $nb_result = mysql_num_rows($result); ?>





Cette fois ci le message d'erreur est :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN event ON (trombi.id = event.id) INNER JOIN evenement ON (eve' at line 1

Ce qui me surprend, car j'utilise déjà la fonction INNER JOIN dans une autre page (mais uniquement avec 2 tables) et sans aucun probleme...