Alguez
Habitué
Bonjour à tous,
je souhaiterait reprendre un sujet abandonné, KangOl m'avait déja parler d'une solution, comme je reprend le projet je l'est réétudier, sans succès car il y a beaucoup de choses dont je ne comprend pas la signification.
Les bases, un tableaux MySQL nommés cats qui contient 3 champs (id, nom et idparent), en tenant compte que le niveau 0 de la hiérarchie est idparent=0.
Quelqu'un peut retravaillez avec moi la proposition de KangOl?
je souhaiterait reprendre un sujet abandonné, KangOl m'avait déja parler d'une solution, comme je reprend le projet je l'est réétudier, sans succès car il y a beaucoup de choses dont je ne comprend pas la signification.
Les bases, un tableaux MySQL nommés cats qui contient 3 champs (id, nom et idparent), en tenant compte que le niveau 0 de la hiérarchie est idparent=0.
Quelqu'un peut retravaillez avec moi la proposition de KangOl?
bon !
avant toute chose, il te faut une méthode pour obtenir les enfant directs d'une catégorie
[cpp]array getDirectChildrendOf($id) {
faire requete : SELECT * from cats where idparent = $id
renvoyer les élément sous forme de tableau
}[/cpp]
ensuite il te faut une méthode récursive de mise en page
[cpp]string getHierarchy($id) {
$result = '';
$arr = getDirectChildrenOf($id);
pour chaque élément de $arr {
$result += '<li>';
$result += getHierarchy( nième élément de $arr);
$result += '</li>';
}
si $result est non vide
return '<ul>' + $result + '</ul>';
sinon return $result;
}[/cpp]
ensuite suffit d'appeler la méthode getHierarchy avec 0 comme param (en considérant que les cats qui n'ont pas de parents ont 'idparent' à 0)
note que c'est du pseudo code, a retravailler (ajout de control ...)
l'avantage d'avoir une méthode getDirectChildrendOf c'est que tu peux créer une autre méthode que getHierarchy mais qui au lieu de renvoyer ca sous forme de <ul><li>, le renverrais sous une autre forme ...
l'inconvéniant c'est que ca fait plusieurs requetes (et donc que c'est lent)...
pour contrer cela, tu peux faire une seule requetes et stocker toutes tes cats dans un tableau globale que tu lira dans getDirectChildrendOf
edit: tab owned [:kangol:1]
edit 2: fermage de baliseCode::o[/quote] Merci à tous