Problème de liste

Résolu
Bonjour,

Ce code est supposé me récupérer toutes les entrées d'un menu, et afficher un sous menu 'déroulant' au survol d'une catégorie de famille galerie.

			$sql="select ref,chemin,type,parent,famille from menu where type='cat'";
			$query=mysql_query($sql) or die(mysql_error());
				while($menu=mysql_fetch_array($query)) {
					switch($menu['famille']){
						case "galerie";
							echo "\t\t\t\t<li><a href='{$_SERVER['PHP_SELF']}?chemin={$menu['ref']}&fam={$menu['famille']}'>{$vst->shapeStringOut($menu['chemin'])}</a>\n";
							echo "\t\t\t\t\t<ul class='visible'>\n";
								$sql="select * from menu where parent='$menu[ref]' and type='sousCat'";
								$query=mysql_query($sql);
								while($menu2=mysql_fetch_array($query)){
									echo "\t\t\t\t\t\t<li><a href=''>".$vst->shapeStringOut($menu2['chemin'])."</a></li>\n";
								}
							echo "\t\t\t\t\t</ul>\n";	
						break;
						case "none";
						echo "\t\t\t\t<li><a href='{$_SERVER['PHP_SELF']}?chemin={$menu['ref']}&fam={$menu['famille']}'>{$vst->shapeStringOut($menu['chemin'])}</a></li>\n";
						break;
					}
				}


Il se trouve qu'il renvoi toutes les catégories, ainsi que la première de famille galerie, et ses descendants, mais il s'arrête après ceux-ci. Je ne trouve pas de solution, est-ce que quelqu'un aurait une piste?

En vous remerciant,

Smoke
Configuration: Windows Vista
Opera 9.63

5 réponses

  1. Ton switch case n'est pas bon:

    switch($menu['famille']){
    case "galerie";


    après case il faut : et pas ;

    
    switch($menu['famille']){
    						case "galerie":
    
    


    idem pour tous
    0
    1. Merci Alain pour ton intervention^^ j'ai corrigé mes codes utilisant switch^^ mais malheureusement ça ne résout pas mon problème :s
      0
      1. Bonsoir,

        je pense que comme ça ça devrait mieux marcher car tu utilises la variable $query dans chaque boucle while

        donc la deuxième écrase la première

        $sql1="select ref,chemin,type,parent,famille from menu where type='cat'";
        			$query1=mysql_query($sql1) or die(mysql_error());
        				while($menu=mysql_fetch_array($query1)) {
        					switch($menu['famille']){
        						case "galerie";
        							echo "\t\t\t\t<li><a href='{$_SERVER['PHP_SELF']}?chemin={$menu['ref']}&fam={$menu['famille']}'>{$vst->shapeStringOut($menu['chemin'])}</a>\n";
        							echo "\t\t\t\t\t<ul class='visible'>\n";
        								$sql2="select * from menu where parent='$menu[ref]' and type='sousCat'";
        								$query2=mysql_query($sql2);
        								while($menu2=mysql_fetch_array($query2)){
        									echo "\t\t\t\t\t\t<li><a href=''>".$vst->shapeStringOut($menu2['chemin'])."</a></li>\n";
        								}
        							echo "\t\t\t\t\t</ul>\n";	
        						break;
        						case "none";
        						echo "\t\t\t\t<li><a href='{$_SERVER['PHP_SELF']}?chemin={$menu['ref']}&fam={$menu['famille']}'>{$vst->shapeStringOut($menu['chemin'])}</a></li>\n";
        						break;
        					}
        				}
        0
        1. Alors là Maître, j'me met à genoux! J'aurais galéré encore longtemps avant de pouvoir me rendre compte de ça^^! Merci beaucoup pour ton aide :o) ça fonctionne bien maintenant :)
          0
        2. @Smoking birdtant mieux

          mets résolu
          0