我试图找到一种方法从父类别中获取每个子类别,在我的情况下,我不知道我将拥有多少个子类别,因此,我找到的唯一解决方案是使用递归。
我用过:
public function recursiveSel(&$tree, $db, $parent = 0){
$query = $db->query("SELECT id, catName FROM categories WHERE parentCategory=".$parent);
while($category = $db->fetch_array($query)){
$tree .= $category['catName'];
if($category['id'] != $parent){
$this->treeSelCategories($tree,$db,$category['id']);
}
}
}
但我认为,如果有1000个用户正在分类并且我有500个类别,那可能会很乱。
我的类别表构建如下:
|||||||||||||||||||||||||||||
|| id || name || parent ||
|||||||||||||||||||||||||||||
|| 1 || games || 0 ||
|| 2 || courses || 0 ||
|| 3 || cooking || 2 ||
|| 4 || diy || 2 ||
|| 5 || action || 1 ||
|| 6 || new || 5 ||
|| 7 || tutorial|| 3 ||
|| 8 || easy || 7 ||
|||||||||||||||||||||||||||||
结果需要:
games
--action
----new
courses
--cooking
----tutorial
------easy
--diy
有没有办法在不使用递归的情况下执行此操作?可能只有sql? 如果需要,我可以更改数据库结构。
谢谢!