Bonjour,
J'ai une table qui comporte des messages, chaque enregistrements à un id expéditeur ainsi qu'un id destinataire.
Dans la table il peut donc y avoir plusieurs messages qui comporte le même expéditeur et le même destinataire si par exemple le membre 1 envoie 3 messages au membre 2 alors il y aura :
id_expediteur / id_destinataire
1 / 2
1 / 2
1 / 2
donc 3 messages.
le problème c'est que je suis en train de faire une boite de réception avec la liste des correspondants mais actuellement ma requête affiche justement l'ensemble des messages! je veux que ma requête "regroupe" les même id destinataire et expéditeur et affiche le pseudo du correspondant via une jointure. Je ne sais pas si j'ai été précis dans mon histoire ?
voici une image de mes enregistrements de ma table messages
maintenant disons que je suis le membre avec l'id 1 (pseudo demo)
la photo affiche actuellement :
Alors que j'attends un affichage de seulement 2 lignes car dans la photo phpmyadmin le membre 1 parle avec seulement 2 membres et pas 5 ! voila mon problème. Pas évident pour l'expliquer, je vous remercie pour votre aide je pense qu'il faut modifier le where mais je ne sais pas comment :/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $user_id = $_SESSION['auth']->id; $reponse = $pdo->prepare("SELECT u.id id_correspondant, u.username pseudo_correspondant, m.id id_msg, m.id_expediteur id_exp, m.id_destinataire id_des, m.date_envoi date_msg FROM users u INNER JOIN messages m ON m.id_expediteur = u.id WHERE m.id_expediteur = $user_id OR m.id_destinataire = $user_id ORDER BY m.date_envoi DESC LIMIT 0, 20");
Partager