Encore un autre problème aujourd'hui...
je veux faire un menu qui utilise des listes et dont le contenu vient d'une Bdd
le premier niveau affiche les catégories (table "cat") et le second affiches des dossier (table "doss") correspondant à chaque catégories.
Du genre :
  • cat1
    [list:d1ecf3c415]doss1.1
    doss1.2
    doss1.3
[/list:u:d1ecf3c415]
  • cat2
    [list:d1ecf3c415]doss2.1
    doss2.2
    doss2.3
[/list:u:d1ecf3c415]
J'ai écrit le script suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
<?php
    //connection au serveur:
	$cnx = mysql_connect(SERVEUR, USER, PASS, DB) ;
 
    //sÈlection de la base de donnÈes:
    $db = mysql_select_db( "metalobil" ) ;
 
    //requÍte SQL:
    $sql = "SELECT nom, titre, texte, icone
	      FROM cat, doss
	      WHERE cat.id_cat = doss.id_cat
	      ORDER BY nom" ;
 
    //exÈcution de la requÍte:
    $requete = mysql_query( $sql, $cnx ) ;
 
    //affichage des donnÈes:
   while( $result = mysql_fetch_object( $requete ) )
    { 
       echo("<div id=\"nav\">\n") ;
       echo("<ul class=\"level1\">\n") ;
       echo("<li class=\"submenu\">".$result->nom."\n") ;
       		echo("<ul class=\"level2\">\n") ;
       		echo("<li class=\"submenu\">".$result->titre."</li>\n") ;
       		echo("</ul>\n") ;
       		echo("</li>\n") ;
       echo("</ul>\n") ;
    }
  ?>
mais il me répète le premier niveau pour chaque second niveaux.
Voici le code html qu'il génère à la sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
<ul class="level1">
<li class="submenu">Architecture
<ul class="level2">
<li class="submenu">Arbre</li>
</ul>
</li>
</ul>
<div id="nav">
<ul class="level1">
<li class="submenu">Architecture
<ul class="level2">
<li class="submenu">avant4</li>
</ul>
</li>
</ul>
<div id="nav">
<ul class="level1">
<li class="submenu">Mobilier
<ul class="level2">
<li class="submenu">fffff</li>
</ul>
</li>
</ul>
<div id="nav">
<ul class="level1">
<li class="submenu">Mobilier
<ul class="level2">
<li class="submenu">rrrr</li>
</ul>
Je sais que le problème est dans l'écriture de la boucle, mais je ne maitrise pas vraiment le truc... ci quelqu'un peut m'expliquer?