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

  1. 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
  2. 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
  3. 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