IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

problème dans ma requête de jointure [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de kawther
    Inscrit en
    Avril 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 307
    Par défaut problème dans ma requête de jointure
    j'ai un problème dans ma requête, qui contient une jointure je sais pas pourquoi j'ai pas de résultat malgré que ça doit retourner qq chose.
    ma requête est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req2="select * from pfe,theme_pfe where ID_THEME='$id_theme' and theme_pfe.ID_PFE=pfe.ID_PFE limit '$limite_start',6";

  2. #2
    Fabouney
    Invité(e)
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req2="SELECT * ".
    	  "FROM pfe, theme_pfe ".
    	  "WHERE ID_THEME='$id_theme' ".
    	  "AND theme_pfe.ID_PFE=pfe.ID_PFE ".
    	  "LIMIT '$limite_start',6";
    bah déjà :
    affiche la requête avant de l'exécuter, et regarde si rien n'est anormale.
    ensuite exécute la requête à la main pour regarder si une éventuelle erreur existe, ou encore fait un or die(mysql_error()) lors de l'execution de ta requête dans ton script.

    ID_THEME est un entier ou une chaine dans ta table ?
    ensuite pour les limite y a pas de ' c'est des entier (LIMIT 0,10)

    donc ma correction si ID_THEME est un entier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req2="SELECT * ".
    	  "FROM pfe as P, theme_pfe as TP".
    	  "WHERE ID_THEME = $id_theme ".
    	  "AND TP.ID_PFE = P.ID_PFE ".
    	  "LIMIT $limite_start,6";
    P.S : évite les majuscules dans tes nom de champ !

    Cordialement.

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    pour plus de lisibilité et de facilité sépare la jointure de la contraine de la requête
    sur une jointure ça va mais sur plusieurs ou sur des jointure ouverte ça facilite grandement la vie
    donc la même avec JOIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req2="SELECT * ".
    	  "FROM pfe as P".
              "JOIN theme_pfe as TP USING (ID_PFE)
    	  "WHERE ID_THEME = $id_theme ".
    	  "LIMIT $limite_start,6";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM pfe as P, theme_pfe as TP WHERE P.ID_PFE = TP.ID_PFE
    est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM pfe as P JOIN theme_pfe as TP USING (ID_PFE)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM pfe as P, theme_pfe as TP WHERE (P.ID_PFE = TP.ID_PFE) OR TP.ID_PFE IS NULL
    est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM pfe as P LEFT JOIN theme_pfe as TP USING (ID_PFE)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM pfe as P, theme_pfe as TP WHERE (P.ID_PFE = TP.ID_PFE) OR P.ID_PFEIS NULL
    est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM pfe as P RIGHT JOIN theme_pfe as TP USING (ID_PFE)
    de plus ça permet d'avoir une requête de base sans clause whre que l'on peut tester ou réutiliser dans plusieurs contexte de l'application en ajoutant justement le where qui va bien

    A+JYT

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème dans une requête
    Par clettebou dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/10/2006, 19h03
  2. [Factoring_Clause]Problème dans une requête
    Par media dans le forum Oracle
    Réponses: 4
    Dernier message: 30/08/2006, 13h47
  3. [Access] Problème dans une requête SQL avec INNER JOIN ?
    Par bds2006 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/06/2006, 10h57
  4. Problème dans une requête SQL avec AS et ON ?
    Par bds2006 dans le forum Bases de données
    Réponses: 9
    Dernier message: 26/06/2006, 15h25
  5. problème dans une requête
    Par pierrOPSG dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/11/2005, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo