Jointure php mysql

Fermé
kogoi Messages postés 8 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 26 mars 2012 - 1 nov. 2011 à 12:11
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 8 nov. 2011 à 09:54
Bonjour,
Je suis en train de faire un site d'échange où chaque client crée sa fiche dans une table "bien"

Chaque fiche client a un id unique


Le client sélectionne les fiches des autres clients qui l'interesse
cela incrémente une table "selection" qui contient
le champs "client" qui contient l'id du client
et le champ "produit" qui contient l'id du bien sélectionné

la requête devrait me sortir la liste des biens sélectionnés , mais en utilisant le code suivant

$sql="SELECT * FROM 'bien'INNER JOIN 'selection' ON 'bien'.'id' = 'selection'.'client' WHERE 'selection'.'client' = '".$_SESSION['id']."'" ;


cela me sort la fiche du client qui fait la requete et non les fiches qu'il a sélectionné.

Je ne comprends pas mon erreur
merci de votre aide

4 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
Modifié par Zep3k!GnO le 2/11/2011 à 18:29
SELECT selection.*, bien.*   
FROM .... (le reste de ta query) 
0
kogoi Messages postés 8 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 26 mars 2012
2 nov. 2011 à 18:57
merci pour ton aide, mais peux tu m'en dire plus, je n'y arrive toujours pas
0
kogoi Messages postés 8 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 26 mars 2012
2 nov. 2011 à 19:15
j'ai trouvé
$sql="SELECT * FROM bien WHERE id=(SELECT produit FROM selection WHERE 'client' = '".$_SESSION['id']."')" ;


merci tout de même à ZEP
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
2 nov. 2011 à 22:10
Bonjour,

En fait, ta requête de début aurait pu marcher, mais ta condition ON du INNER JOIN ne faisait pas correspondre les bons champs :)

Xavier
0
kogoi Messages postés 8 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 26 mars 2012
7 nov. 2011 à 18:18
bjr
peux tu m'en dire plus svp Reivax962
quelle est la bonne syntaxe
merci
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 8/11/2011 à 09:55
En fait, dans ta requête qui marche, tu fais correspondre :
bien.id avec selection.produit
et
selection.client avec $_SESSION['id'].

Alors que dans ta requête qui ne marchait pas, tu faisais correspondre :
bien.id avec selection.client
et
selection.client avec $_SESSION['id'].

Donc il aurait plutôt fallu écrire, dans ta première requête :
SELECT * FROM bien INNER JOIN selection ON bien.id = selection.produit WHERE selection.client = '".$_SESSION['id']."'"

Xavier
0