Bonjour, je suis entrain de développer un système de MP pour mon site.
Mon script marche à peu près bien sauf, que sur l'accueil ou sont listés les MP, sa bug. J'ai vite compris que sa venait de la requête SQL.
Je vais vous expliquer rapidement mes problèmes :
Pour listés mes MP, je suis obliger de sélectionner toutes les informations dans les différentes tables donc, je fait appels au jointures. Ma première requête est celle ci :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $requete = mysql_query(' SELECT a.*, b.*, c.*, d.*, e.* FROM mpsujet a LEFT JOIN mpmessage b ON b.idSujet=a.idSujet LEFT JOIN mpparticipant c ON c.idSujet=a.idSujet LEFT JOIN membres d ON d.membres_id=b.idMembre LEFT JOIN groupes e ON e.groupe_rang=d.membres_rang') or die (mysql_error()); while{ .... } ?>
Cette requête ci-dessus affiche bien tout mais, si par exemple dans la discussion, il y a 6 messages, alors le tableaux se dupliquer 6 fois.
Vous comprenez mieux ? (4 messages donc 4 fois dupliqué)
Est sinon, on ma conseiller de remplacer les LEFT par NATURAL si quand le nom des champs dans le ON sont identiques. C'est ce que j'ai fait :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $requete = mysql_query(' SELECT a.*, b.*, c.*, d.*, e.* FROM mpsujet a NATURAL JOIN mpmessage b NATURAL JOIN mpparticipant c LEFT JOIN membres d ON d.membres_id=b.idMembre LEFT JOIN groupes e ON e.groupe_rang=d.membres_rang') or die (mysql_error()); while{ ... } ?>
La carrément plus rien ne s'affiche... si il y a 5 discussions, il y aura quand même marquer "Vous n'avez aucun message privé pour l'instant..."
vous pouvez m'aider ?
Merci, d'avance.![]()
Partager