Mammouth du PHP |
19672 Messages
15 janv. 2006, 23:17
Tu n'as pas donné les bonnes tables, il en manque une et une autre n'est pas concernée: il manque la table membres.
Mais dans le principe, une jointure permet de relier les lignes d'une table à celles d'une tre sur un point commun. Le plus souvent, on va utiliser comme point de repère un identifiant dans une table qui es également présent dans l'autre table en clé étrangère.
La requête telle que tu l'as faite va faire ce qu'on appelle un produit cartésien et tu obtiendras le nombre de lignes de la première table multiplié par le nombre de ligne de la seconde.
Pour éviter ça et aucontreaire extraire le bon nombre de lignes, il faut ajouter une clause WHERE
La forme de la requête est donc la suivante:
Code : Tout sélectionner
SELECT pseudo, titre
FROM membres, messages
WHERE membres.id = expediteur
ORDER BY pseudo;
J'ignore si les champs utilisés dans la clause WHERE sont bons ne connaissant pas la structure de la table membres, mais adaptes ce qui identifie le posteur du message dans la table messages à ce qui l'identigfie dans la table membres.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 