Pour réaliser la classification Infinitus, la création de tables de base de données est la clé.
Au moins trois champs sont requis dans la structure de la table. Si vous souhaitez éviter la récursionboucle, alors quatre champs sont nécessaires.
1. id, l'identifiant unique des données actuelles ;
2. typename, le nom du type
3. parentid, l'identifiant du type parent du ; type actuel ;
4. chemin, qui stocke l'identifiant du type actuel et les identifiants de tous ses types parents.
Ces identifiants sont séparés par des "-".
5. Lorsque cela peut être réalisé via l'instruction SQL suivante, les informations de la même catégorie de niveau supérieur seront affichées ensemble.
sélectionnez * à partir du nom de la table où la condition ordonnezpar chemin ;
Par exemple :
Un exemple de classification illimité très simple, clair et simple, with Pour l'effet d'indentation, il vous suffit d'interroger la table de données une seule fois, puis de parcourir récursivement l'ensemble de résultats. Si vous souhaitez implémenter l'affichage de l'indentation des colonnes en PHP, vous pouvez vous y référer.
$sql = 'select * from cat order by cat_id desc'; $list = $db->getAll($sql); $list = getLevelCat($list); function getLevelCat($catlist, $parent_id='0', $html=' ', $level='0'){ $arr = array(); foreach($catlist as $val){ if($val['parent_id']==$parent_id){ $val['html'] = str_repeat($html,$level); $val['level'] = $level; $arr[] = $val; $arr = array_merge($arr, getLevelCat($catlist, $val['cat_id'], $html, $level+1)); } } return $arr; }
Juste quelques lignes de code, plus claires et plus faciles à utiliser.
Recommandations associées :
Comment implémenter la fonction de classification Infinitus en PHP
Comment créer une arborescence de classification Infinitus
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!