Pas de librairie à ma connaissance (mais ça doit pouvoir se trouver), quant à un tutoriel, il est assez basique je pense.
Tout d'abord il te faut une table "categorie" avec
- un champ id_categorie (int) => clé primaire
- un champ libelle (varchar) => parce que c'est mieux avec un nom
- un champ id_parent (int) => qui va te dire de quelle catégorie celle-ci est la fille
- ... => tout ce qui t'interesse concernant ta catégorie
L'idée est de laisser vide (null) les id_parent pour les catégories principales, et de renseigner celui des sous-catégories. Tu auras ainsi en gros :
Code : Tout sélectionner
id_categorie | libelle | id_parent | ...
1 | Cat. 1 | NULL
2 | Cat. 1.1 | 1
3 | Cat. 1.2 | 1
4 | Cat. 2 | NULL
5 | Cat. 2.1 | 4
6 | Cat. 2.1.1 | 5
A partir de là, en interrogeant ta table avec un "WHERE id_parent IS NULL", tu récupères les catégories principales. Avec un "WHERE id_parent = 1", tu récupères les sous-catégories de "Cat. 1", etc.
Pour un fil d'ariane, il suffit de remonter de manière récursive (c'est à dire boucler tant que tu n'auras pas obtenu un id_parent NULL) :
- l'utilisateur a demandé la catégorie Cat 2.1.1 (id=6), tu récupères la catégorie parente (id=5)
- tu as la catégorie parente Cat 2.1 (id=5), tu récupères la catégorie parente (id=4)
- tu as la catégorie parente Cat 2 (id=4), tu récupères la catégorie parente (id=NULL => tu arrêtes la récursivité)
Il ne te reste plus alors qu'à afficher les libellés des catégories que tu viens de récupérer
