Hello,
Tu peux t'en sortir sans trop de prise de tête avec un peu de POO et deux arrays. Une pour la racine, une fourre-tout.
chaque objet ( appelé Truc dans la suite de l'explication ) contient les données que tu tires de ta table, et un array contenant ses sous-catégories directes.
Je te laisse le code, c'est pas très compliqué et c'est plus amusant comme ça

. Je te donne juste le scénario :
Si idPere = 0, c'est la racine, on cree donc un nouvel objet dans la liste racine :
racine[ id_recup ] = new Truc( tes_donnees_recupérées )
et on copie cet objet dans la liste fourre-tout parce que c'est plus simple ensuite.
fourre_tout[ id_recup ] = racine[ id_recup ]
Si idPere != 0, c'est donc une sous-catégorie. On crée l'objet dans le fourre tout.
fourre-tout[ id_recup ] = new Truc( tes_données_récupérées )
et on le passe à son objet "père" pour qu'il le référence dans sa liste de sous éléments.
fourre-tout[ idPere ]->ajouter( fourre-tout[ id_recup ] )
Reste plus qu'à ajouter une méthode récursive à ton objet pour afficher tout ça.
Partager