Une boucle au peut spécifique

Signaler
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011
-
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011
-
Bonjour,
je tente désespérément de généré dynamiquement un menu vertical.
Je possède un bd avec 3 tables faite de la manière suivante








Table MENU
+----------+---------+
+  id_menu +   menu   +
+----------+---------+
   1           +   Sortie
   2           +   Infos   
   3           +   Articles
+----------+---------+

Table SOUS_MENU
+------------+---------+
+  id_s_menu +  s_menu +
+------------+---------+
   1              +   Raquette
   2              +   Rando   
   3              +   rafting
   4              +   Inscription
+------------+---------+

Table ARTICLE
+----------+--------------+---------+-----------+
+  id          +   article         +   menu  +   s_menu   +
+----------+--------------+---------+-----------+
   1           +   raquette     +      3    +        1        +
   2           +   rando         +      1    +        2        +
   3           +   inscription   +      2    +        4        +
   4           +   rando         +      3    +        2        +
+----------+-------------+---------+------------+

Puis j'ai fait ma requette SQL :

SELECT *
FROM article
INNER JOIN menu ON article.menu=menu.id_menu
INNER JOIN sous_menu ON article.s_menu=sous_menu.id_s_menu

Le probleme maintenant est que si je fait une simple boucle sur le MENU et SOUS_MENU  il affiche les uns en dessous des autres le MENU ET LE SOUS_MENU.
Alors que se que je cherche à faire c'est de lister tout les sous menu du premier menu puis du second ...

Si que c'est coder sa, un coup de pouce serait le bien venu.

Merci

2 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
hello,

SELECT mesChamps
FROM article a
INNER JOIN menu m ON a.menu=m.id_menu
INNER JOIN sous_menu sm ON a.s_menu=sm.id_s_menu
ORDER BY m.id_menu, sm.id_s_menu
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

En réalité je me suis mal expliqué. Le pb ne vient pas de la requet mais du code php.
J'ai fait bétement une boucle croyant que le listage serait du typ :

Menu1
 - S_menu_1 (du menu 1)
 - S_menu_2 (du menu 1)
Menu2
 - S_menu_1 (du menu 2)
 - S_menu_2 (du menu 2)
 - S_menu_3 (du menu 2)

Voici mon code :
<?php
// on fait une boucle
 do {
 echo ''.$row_menu['menu'].'
';
 echo ''.$row_menu['s_menu'].'
';
  } while ($row_menu = mysql_fetch_assoc($menu));
?>

Le listage qu'il génére est du type
Menu1
 - S_menu_1 (du menu 1)
Menu1
 - S_menu_2 (du menu 1)
Menu2
 - S_menu_1 (du menu 2)
Menu2
 - S_menu_2 (du menu 2)
Menu2
 - S_menu_3 (du menu 2)

Donc c'est pas bon comme résultat