Maison > Article > base de données > Comment récupérer des catégories récursives dans une seule requête MySQL ?
Récupération récursive de catégories avec une seule requête MySQL
Dans les applications Web, l'organisation du contenu en catégories hiérarchiques est courante. Une structure de catégories complexe, telle qu'une arborescence, nécessite un traitement spécialisé pour la récupération. Cet article explore le moyen le plus efficace de récupérer des catégories récursives avec une seule requête MySQL.
La construction de l'arborescence des catégories en PHP à l'aide de références optimise le processus. Une requête récupère les catégories et leurs identifiants parents, qui sont stockés dans un tableau associatif ($nodeList). Le tableau est structuré pour créer des références hiérarchiques où le parent de chaque nœud apparaît dans sa clé « parent ».
La construction de l'arborescence se produit dans le code suivant :
foreach ($nodeList as $nodeId => &$node) { if (!$node['parent'] || !array_key_exists($node['parent'], $nodeList)) { $tree[] = &$node; } else { $nodeList[$node['parent']]['children'][] = &$node; } }
Cette boucle parcourt les nœuds , et si un nœud n'a pas de parent ou si le parent n'existe pas dans le tableau, le nœud est ajouté au tableau $tree. Sinon, le nœud est ajouté en tant qu'enfant au tableau « enfants » de son parent.
Le résultat est une structure arborescente hiérarchique stockée dans le tableau $tree, chaque nœud contenant des références enfants. Cette approche à requête unique est nettement plus rapide que l'utilisation de requêtes MySQL récursives, même pour les grandes arborescences de catégories.
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!