Mauvaise jointure

etre -  
BD-31 Messages postés 17 Statut Membre -
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

etre
 
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
 
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 Statut Membre 18
 
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