我想在一个 mysql 查询中获得第 n 级的类别和子类别的层次结构,我尝试了一些解决方案,但它无法正常工作。 我尝试下面的查询,但它只获得子类别,但是,我希望它来自一个表的第 n 级,例如
category|subcategory|sub-subcategory|......
我的表是fd_category
,它的字段是
id|name|parent_id FK -> fd_category.id
select c.id
, c.name
, group_concat(sc.name) as subcategory
from fd_category c
join fd_category sc
on c.id=sc.parent_id
where c.parent_id=null
group
by sc.parent_id;
最佳答案
public function get_menu() {
$this->db->select('id,name,parent_id');
$menu = $this->db->get('category')->result_array();
$data=$this->menu_child($menu);
//print_r($data);
return $data;
}
function menu_child($menu, $parent = NULL) {
$main_menu = array_filter($menu, function($a)use($parent) {
return $a['parent_id'] == $parent;
});
if ($main_menu) {
foreach ($main_menu as $key => $value) {
$main_menu[$key]['sub_menu'] = $this->menu_child($menu, $value['id']);
}
}
return $main_menu;
}
关于php - 我想在一个mysql查询中获得第n级的类别和子类别的层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28735484/