Problème de liste

Résolu
Smoking bird Messages postés 911 Statut Membre -  
Smoking bird Messages postés 911 Statut Membre -
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. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
  2. Smoking bird Messages postés 911 Statut Membre 58
     
    Merci Alain pour ton intervention^^ j'ai corrigé mes codes utilisant switch^^ mais malheureusement ça ne résout pas mon problème :s
    0
  3. Smoking bird Messages postés 911 Statut Membre 58
     
    up
    0
  4. Alain_42 Messages postés 5413 Statut Membre 904
     
    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. Smoking bird Messages postés 911 Statut Membre 58
       
      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
      1. Alain_42 Messages postés 5413 Statut Membre 904 > Smoking bird Messages postés 911 Statut Membre
         
        tant mieux

        mets résolu
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Smoking bird Messages postés 911 Statut Membre 58
     
    déjà fait ;)
    0