Bonjour,

je veux afficher un tableau récursif j'affiche seulementle dernier malgré que je sois dans une boucle while, je souhaiterais que ceci face une arborescence grâce à la fonction.

Voilà mon code :

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
31
32
function afficher_menu($tb)
{
    // Pour chaque élément du tableau...
    foreach($tb as $key => $value)
    {
        // Si l'élément est un tableau, on appelle la fonction pour qu'elle le parcoure
        if(is_array($value))
        {
             echo $key.' :<ul>';
			 afficher_menu($value);
			 echo '</ul><br />';
		}
        else //Sinon, c'est un élément à afficher, alors on le liste !
        {
             echo '<li>'.$value.'</li>';
        }
    }
}
include('config.php5');
	$sql = mysql_query("SELECT DISTINCT * FROM produit p ORDER BY codeModele,codeSousFamille, codeLigne");
	while($data = mysql_fetch_array($sql))
	{
		$modele = $data['codeModele'];
		$sf = $data['codeSousFamille'];
		$ligne = $data['codeLigne'];
		echo $modele." - ".$sf." - ".$ligne."<br><br>";
		$tb = array(
					"$modele" =>array(
							"$sf"=>array("$ligne")));
	}
 
 afficher_menu($tb);
Ce que j'aimerais c'est que tant qu'il y'a des sf dans le" modèle" afficher et puis tant qu'il y'a des" lignes" dans sf afficher

Je développe :

Si mon champ $modele est different de celui qui est actuelle j'affiche le nouveaux sinon je rentre dans ma boucle $sf puis dans ma boucle $ligne