Bonjour,

J'essaie d'afficher une fonction récursive dans une boucle qui lit une table, et impossible d'afficher correctement le résultat...

Voici la structure de la table SQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
id|id_parent|nom
1 | 0 | Animaux 
2 | 1 | Chats 
3 | 0 | Voitures 
4 | 2 | Siamois
la boucle classique :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
while ($cat =  mysql_fetch_array($rid)) {
echo "<tr></td>".$cat['id']."</td>";
echo "<tr></td>".$cat['nom']."</td>";
echo "<tr></td>".arbre($cat['parent_id'])."</td></tr>";
}
La fonction arbre, après 1243 modifs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
function arbre($parent) {
while ($cat =  mysql_fetch_array($res)) 
{
if ($cat['id'] != $parent) {
arbre($cat['id']);
$sortie = $cat['nom'];
}else{
$sortie  = "Racine/$cat[nom]";
}
}
return $sortie;
}
Je voudrais afficher pour les 4 lignes de la boucle :
1 | animaux | Racine
2 | chats | Racine/animaux
3 | voitures | Racine
4 | siamois | Racine/animaux/chats

Si quelqu'un peut me mettre sur la piste... merci !