Requete jointure

Fermé
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 - Modifié le 6 juil. 2017 à 18:38
yg_be Messages postés 22694 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 - 11 juil. 2017 à 21:31
Bonsoir à tous , j'ai fais ce code a l'affichage il me donne qu'un seul element or je veux lister tous
  <?php

                                include 'folder_bd/file_bd.php';
                                 $req_join ='SELECT * FROM marque,produit,catalogue,couleur 
                        WHERE marque.id_marq=produit.id_marq 
                        AND catalogue.id_cata=produit.id_cata
                        AND couleur.id_prod=produit.id_prod 
                        AND statu_cata=1';
                         $envoi = $bd->query($req_join);
                         while ($data=$envoi->fetch()) {
                             echo '<li class="nenu1"><a href="#" rel="nofollow noopener noreferrer" target="_blank">'.$data['lib_cata'].'</a></li></br>';
                         }
                             ?>

7 réponses

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
6 juil. 2017 à 22:16
Bonjour,

Ton code semble bon....

Que donne ta requête si tu l'exécute DIRECTEMENT dans phpmyadmin ?
SELECT * 
FROM marque,produit,catalogue,couleur 
 WHERE marque.id_marq=produit.id_marq 
AND catalogue.id_cata=produit.id_cata
AND couleur.id_prod=produit.id_prod 
AND statu_cata=1

0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
6 juil. 2017 à 22:19
Requête qui pourrait être écrite :
SELECT M.*
      ,P.*
      ,CA.*
      ,CO.*      
FROM marque M
LEFT JOIN produit P ON M.id_marq = P.id_marq
LEFT JOIN catalogue CA ON CA.id_cata = P.id_cata
LEFT JOIN couleur  CO ON CO.id_prod = P.id_prod
 WHERE  statu_cata=1
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
7 juil. 2017 à 11:08
j'ai remplacé par votre requete maintenant cela s'affiche plusieurs fois
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
7 juil. 2017 à 11:09
Donc c'est bon ou il y encore quelquechose qui ne va pas ??
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
7 juil. 2017 à 11:14
la boucle affiche 2 ,4 ou 1 fois les memes elements
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
7 juil. 2017 à 11:19
C'est normal...Si tu as des relations 1->N avec les autres tables......

A toi de traiter le retour dans ton php ....
Un truc du genre :

boucle sur le résultat de ta requête

si valeur == valeur précédente ....

Sinon ....


Next..
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
7 juil. 2017 à 11:22
un exemple ?
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
7 juil. 2017 à 11:25
pas sous la main.

Mais si tu me montres un extrait de ce que te retourne ta requête .... et ce que tu souhaiterais obtenir.. je peux t'aiguiller sur ton code
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
Modifié le 7 juil. 2017 à 11:35
 


<?php

      $req_join = '[/contents/1068-sql-commande-select SELECT] M.*
      ,P.*
      ,CA.*
      ,CO.*      
FROM marque M
LEFT JOIN produit P ON M.id_marq = P.id_marq
LEFT JOIN catalogue CA ON CA.id_cata = P.id_cata
LEFT JOIN couleur  CO ON CO.id_prod = P.id_prod
 WHERE  statu_cata=1';
                     
                         $envoi = $bd->query($req_join);
                         while ($data=$envoi->fetch()) {
                             echo '<li class="nenu1"><a href="index.php?page=All_liste.php&num='.$data['id_cata'].'" rel="nofollow noopener noreferrer" target="_blank">'.$data['lib_cata'].'</a></li></br>';
                         
                         }
                             
                             ?>

je veux que dans les li j'ai la liste du catalogue que j'ai mis lib_cata et ensuite sur le lien ou je clique j'affiche la liste de tous les elements des differents table de la jointure.
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
7 juil. 2017 à 11:54
IL nos manque une infos essentielle que je t'ai demandé dans ma précédente réponse :
un extrait de ce que te retourne ta requête
0
yg_be Messages postés 22694 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 1 471
7 juil. 2017 à 12:03
bonjour, il suffit peut-être de faire ainsi:
SELECT DISTINCT id_cata, lib_cata
FROM marque M
LEFT JOIN produit P ON M.id_marq = P.id_marq
LEFT JOIN catalogue CA ON CA.id_cata = P.id_cata
LEFT JOIN couleur  CO ON CO.id_prod = P.id_prod
 WHERE  statu_cata=1
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > yg_be Messages postés 22694 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024
7 juil. 2017 à 12:04
oui bien vu.
Ah ça .... c'est un bon contributeur.... :-)
Je ne sais pas qui a eu la bonne idée de le nommer... mais il a bien choisi ^^
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
7 juil. 2017 à 12:04
je ne sais pas comment l'afficher il retourne toute les tables join meme les champs sans null
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
7 juil. 2017 à 12:09
yg_be on me dit id_cata ambigu
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
7 juil. 2017 à 12:25
Prefixe par l'alias de la table
0
yg_be Messages postés 22694 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 1 471 > jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
7 juil. 2017 à 14:32
donc, par exemple:
SELECT DISTINCT P.id_cata, lib_cata
FROM marque M
LEFT JOIN produit P ON M.id_marq = P.id_marq
LEFT JOIN catalogue CA ON CA.id_cata = P.id_cata
LEFT JOIN couleur  CO ON CO.id_prod = P.id_prod
 WHERE  statu_cata=1
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
7 juil. 2017 à 16:38
oui celui la passe , mais je voulais aussi une autre requete excusez moi cette syntaxe je ne connais pas .
voici ceux que je veux toute les infos concernant les tables join qui on tous une info dans leur champs. comment je peux proceder maintenant
0
yg_be Messages postés 22694 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 1 471
7 juil. 2017 à 17:09
ne t'excuse pas de ce que tu ne connais pas, ce forum existe pour aider chacun à étendre ses connaissances.
si ta question est résolue, je te suggère de commencer une autre question, en expliquant bien ce que tu veux, peut-être en donnant un exemple.
si ta question n'est pas résolue, dis-nous en plus.
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
7 juil. 2017 à 17:32
ok merci !
0
yg_be Messages postés 22694 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 1 471
9 juil. 2017 à 21:59
si la question est résolue, peux-tu la marquer comme résolue?
0
yg_be Messages postés 22694 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 1 471
11 juil. 2017 à 21:31
si la question est résolue, peux-tu la marquer comme résolue?
0