Besoin d'aide pour requête SQL (jointure)
bxnpower
Messages postés
4
Statut
Membre
-
doudi -
doudi -
Besoin d'aide pour requête SQL (jointure)
Bonjour,
Voila en fait j’aurais voulu avoir un peut d’aide pour ma requête qui a pour but de recueillir une multitude d’information. Dans un premier temps je n’arrivais pas à la faire fonctionner, j’ai donc cherché un bon moment, puis j’ai réussi en lançant deux requêtes différentes, seulement pour plus de clarté j’aurai aimé la réunir en une seule requête, et je suis persuader que ceci est possible, mais du fait de mon manque d’expérience sur mysql je galère un peut.
C’est pour cela que j’aurais aimé que vous m’éclairiez un peut sur la requête.
Voici la constitution de mes tables :
Table imgliendossier
Champ : IdDossier ; NomDossier
Table imgpages
Champ : IdImgPages ; ImgPages ; ImgRollOver ; LienImgPages ; IdDossier ; ImgTOP ; ImgLEFT ; ImgWidth ; ImgHeight ; IdPages
Table pages
Champ : IdPages ; NomPages ; SousPages ; LienDossier
Résultat cherché : Obtenir les champs NomDossier ; ImgPages ; ImgRollOver ; LienImgPages ; ImgTOP ; ImgLEFT ; ImgWidth ; ImgHeight Avec pour filtre IdPages= ‘3’ par exemple
Solution trouvé (mais pas très très bonne je pence) :
$RequêteImg="Select * from imgpages, imgliendossier where imgliendossier.IdDossier=imgpages.IdDossier and IdPages='".$IdImg."'";
$RésultatImg=mysql_query($RequêteImg);
$LigneImg=mysql_fetch_array($RésultatImg);
$RequêteImg2="Select * from pages where IdPages='".$IdImg."'";
$RésultatImg2=mysql_query($RequêteImg2);
$LigneImg2=mysql_fetch_array($RésultatImg2);
Autre solution que j’aurais aimé et pensée bonne mais qu’il ne l’est pas :
$RequêteImg="Select * from imgpages, imgliendossier, pages where imgliendossier.IdDossier=imgpages.IdDossier and pages.IdPages=imgpages.IdPages and IdPages='".$IdImg."'";
$RésultatImg=mysql_query($RequêteImg);
$LigneImg=mysql_fetch_array($RésultatImg);
Merci Pour votre aide
Bonjour,
Voila en fait j’aurais voulu avoir un peut d’aide pour ma requête qui a pour but de recueillir une multitude d’information. Dans un premier temps je n’arrivais pas à la faire fonctionner, j’ai donc cherché un bon moment, puis j’ai réussi en lançant deux requêtes différentes, seulement pour plus de clarté j’aurai aimé la réunir en une seule requête, et je suis persuader que ceci est possible, mais du fait de mon manque d’expérience sur mysql je galère un peut.
C’est pour cela que j’aurais aimé que vous m’éclairiez un peut sur la requête.
Voici la constitution de mes tables :
Table imgliendossier
Champ : IdDossier ; NomDossier
Table imgpages
Champ : IdImgPages ; ImgPages ; ImgRollOver ; LienImgPages ; IdDossier ; ImgTOP ; ImgLEFT ; ImgWidth ; ImgHeight ; IdPages
Table pages
Champ : IdPages ; NomPages ; SousPages ; LienDossier
Résultat cherché : Obtenir les champs NomDossier ; ImgPages ; ImgRollOver ; LienImgPages ; ImgTOP ; ImgLEFT ; ImgWidth ; ImgHeight Avec pour filtre IdPages= ‘3’ par exemple
Solution trouvé (mais pas très très bonne je pence) :
$RequêteImg="Select * from imgpages, imgliendossier where imgliendossier.IdDossier=imgpages.IdDossier and IdPages='".$IdImg."'";
$RésultatImg=mysql_query($RequêteImg);
$LigneImg=mysql_fetch_array($RésultatImg);
$RequêteImg2="Select * from pages where IdPages='".$IdImg."'";
$RésultatImg2=mysql_query($RequêteImg2);
$LigneImg2=mysql_fetch_array($RésultatImg2);
Autre solution que j’aurais aimé et pensée bonne mais qu’il ne l’est pas :
$RequêteImg="Select * from imgpages, imgliendossier, pages where imgliendossier.IdDossier=imgpages.IdDossier and pages.IdPages=imgpages.IdPages and IdPages='".$IdImg."'";
$RésultatImg=mysql_query($RequêteImg);
$LigneImg=mysql_fetch_array($RésultatImg);
Merci Pour votre aide
A voir également:
- Besoin d'aide pour requête SQL (jointure)
- Logiciel sql - Télécharger - Bases de données
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Cherche des haricot vendez les moi ✓ - Forum DS
- Sql (+) - Forum Programmation
- Sql jointure - Forum Bases de données
5 réponses
Voici une proposition :
Select NomDossier,ImgPages,ImgRollOver,LienImgPages,ImgTOP,ImgLEFT,ImgWidth,ImgHeight
FROM imgliendossier d,imgpages i
where d.IdDossier = i.IdDossier
And IdPages= ‘3’;
Si la requête te retourne plusieurs lignes ,tu devras boucler.
Select NomDossier,ImgPages,ImgRollOver,LienImgPages,ImgTOP,ImgLEFT,ImgWidth,ImgHeight
FROM imgliendossier d,imgpages i
where d.IdDossier = i.IdDossier
And IdPages= ‘3’;
Si la requête te retourne plusieurs lignes ,tu devras boucler.
Merci pour ta réponse, seulement je crois que tu à oublier le champ "LienDossier" de la table "Pages" et c'est la ou je bloque =/
Voila,
Select NomDossier,ImgPages,ImgRollOver,LienImgPages,ImgTOP,ImgLEFT,ImgWidth,ImgHeight,LienDossier
FROM imgliendossier d,imgpages i,pages p
where d.IdDossier = i.IdDossier and p.idPages =i.idPages
And i.IdPages= ‘3’;
Select NomDossier,ImgPages,ImgRollOver,LienImgPages,ImgTOP,ImgLEFT,ImgWidth,ImgHeight,LienDossier
FROM imgliendossier d,imgpages i,pages p
where d.IdDossier = i.IdDossier and p.idPages =i.idPages
And i.IdPages= ‘3’;
c'est parfait ! merci beaucoup, je viens de comprendre mon erreur, je n'avais pas mi le nom de la table a la fin :
"table".IdPages='3'
Merci pour ton aide =)
"table".IdPages='3'
Merci pour ton aide =)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question