Mauvaise jointure

Fermé
etre - 27 août 2006 à 13:22
BD-31 Messages postés 17 Date d'inscription mardi 15 août 2006 Statut Membre Dernière intervention 25 octobre 2006 - 29 août 2006 à 14:08
Slt, j'ai un problème avec une jointure que j'essaye de faire mais je ne vois pas ou je fais une erreur car elle ne fonctionne pas :
J'ai 2 tables
- g_categories avec (id,id_cat,auteur)

3 réponses

Désolé mauvaise manip....
J'ai 2 tables
- g_categories avec (id,id_cat,auteur)
- g_annonces (id,id_cat,text)
Les 3 champs qui m'intéressent sont id_cat,auteur,text.
La jointure se fait par id_cat
comment j'ai fait :
   $result=mysql_query("SELECT g_annonces.text, g_categories.auteur
FROM g_annonces, g_categories
WHERE g_annonces.id_cat = g_categories.id_cat AND en_ligne=1 ORDER BY Rand() LIMIT 1");
   while (list($id_cat,$auteur,$text) = mysql_fetch_row($result)) {
   echo "<div align=\"center\" class=\"TITRED\">\"".$text."\"  <i>$auteur</i></div>";
}

Si vous aviez une idée, merci !
0
Jean-Jacques
28 août 2006 à 22:57
Bonsoir,
Pour faire avancer le schmilblick, voici ce qui fonctionne sous SQL.
A vous de voir si c'est transposable.

SELECT Table1.Réf1, Table2.Réf2
FROM Table1 INNER JOIN Table2 ON Table1.Réf1 = Table2.Réf2;

A+
La science ne fait que trouver ce qui existe depuis toujours.
Hubert REEVES.
0
BD-31 Messages postés 17 Date d'inscription mardi 15 août 2006 Statut Membre Dernière intervention 25 octobre 2006 18
29 août 2006 à 14:08
Salut, J'ai un peu de mal avec le code: d'où sort le en_ligne=1 ?? ça peut être un problème. Mais pour la jointure, elle est bonne. Par contre, ton list($id_cat,$auteur,$text) ne trouvera pas le id_cat, tu ne l'appelles pas dans ta requête... mais bon, tu n'est n'a pas besoin, tu ne l'utilise pas dans ton affichage...
En plus, tu peux faire plus simple dans ton code (il sera plus clair :
echo "<div align='center' class='TITRED'>\"$text\" <i>$auteur</i></div>";
Si tu as toujours des pb, essaye en réduisant au strict nécéssaire, sans AND, sans ORDER BY, et sans LIMIT.
0