Bonsoir (ou bonjour) à tous !
Je suis actuellement bloqué sur une requête SQL que je n'arrive pas à faire fonctionner à 100% comme je le souhaite.
Sur une page, je veux récupérer la liste des amis de l'utilisateur.
J'ai une table "Liste_Amis" qui s'organise comme ceci:
ID ( Pour la clé primaire ) / ID_Ami1 / ID_Ami2 / DateAjout / HeureAjout.
J'ai une table Membres où je récupère l'ID_Ami pour y faire un simple join et y récupérer des informations sur son compte ( Pseudo, Rang, etc ... ).
Ma requête SQL ressemble donc à ça:
$reqfriends = $bdd->prepare('SELECT * FROM Liste_Amis JOIN Membres ON Liste_Amis.ID_Ami2 = Membres.ID_Utilisateur WHERE ID_Ami1 OR ID_Ami2 = ?');
$reqfriends->execute(array($user['ID_Utilisateur']));
Seulement voilà, avec ce code, ça marche bien du coté d'un utilisateur mais pas de l'autre.
Sur l'autre, ce sont les informations de l'utilisateur qui affiche la page qui sont affichés.
Je sais que le problème vient de mon JOIN, et j'ai essayer plusieurs chose dont entre autre ceci et sous plusieurs syntaxe différentes mais la requête me retourne toujours un résultat nul à chaque fois:
$reqfriends = $bdd->prepare('SELECT * FROM Liste_Amis JOIN Membres ON Liste_Amis.ID_Ami2 = Membres.ID_Utilisateur JOIN Membres ON Liste_Amis.ID_Ami1 = Membres.ID_Utilisateur WHERE ID_Ami1 OR ID_Ami2 = ?');
$reqfriends->execute(array($user['ID_Utilisateur']));
J'ai trouvé un système de secours mais qui implique d'avoir deux fois la même entrée avec les ID_Ami1 et ID_Ami2 qui sont inverser et où je fais une simple requête ('SELECT * FROM Liste_Amis JOIN Membres ON_Liste_Amis.ID_Ami1 = Membres.ID_Utilisateur WHERE ID_Ami1 = ?) et un Execute avec comme seul paramètre l'ID de l'utilisateur qui affiche la page.
Mais vu que ce système demande d'avoir deux entrées dans la table Liste_Amis pour les deux même utilisateurs c'est pas très très sérieux....
Merci à ceux qui prendront de leur temps pour m'aider !
