SELECT multitable : pb d'affichage

Bonjour à tous, j'ai un petit problème avec une requête pourtant simple portant sur plusieurs tables(5 tables).
La requête est OK mais je n'obtiens qu'un seul éditeur et qu'un seul auteur. La boucle s'arrête à la première valeur de la table edte et de la table ecrit.
J'espère m'être fait comprendre, c'est pas évident. Merci d'avance.
Voici un petit bout de script:
$sql = "SELECT *
        FROM publications, auteurs,editeurs,ecrit,edite
        WHERE publications.NumPubli = ecrit.NumPubli
                AND publications.NumPubli=edite.NumPubli
                AND ecrit.NumAuteur=auteurs.NumAuteur
                AND edite.NumEditeur=editeurs.NumEditeur
                AND publications.NumPubli ='$lien'
        GROUP BY publications.Titre";


$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


while($data = mysql_fetch_array($req))
    {

etc.

5 réponses

  1. Salut!

    A priori, certains champs de certaines tables sont vides.
    La clause GROUP BY les ignore donc, ce qui pourrait être la cause de ton problème.

    Essayes de remplacer GROUP BY par ORDER BY.

    ;-)
    HackTrack
    1. Merci, mais j'ai essayé ORDER BY et ça marche tjs pas.
      KD
  2. J'ai essayé mais il ne reconnaît pas la fonction. J'ai aussi essayé row et assoc, ça ne marche pas. En fait, si je fais une requête simple de type :
    "SELECT *
            FROM edite,editeurs
            WHERE edite.NumPubli='$lien'
            AND editeurs.NumEditeur=edite.NumEditeur";


    C'est ok, j'ai tout qui s'affiche. Le problème vient de la combinaison de plusieurs conditions dans WHERE.
    1. Tu as essayé avec un client SQL ?
      Ca te donne quoi ?

      Chmanu
      1. c'est quoi, un client sql?