我想在一个 mysql 查询中获得第 n 级的类别和子类别的层次结构
i want to get Hierarchical structure of category and subcategory for nth level in one mysql query
我想在一个 mysql 查询中获取第 n 级类别和子类别的层次结构 我尝试了一些解决方案,但它无法正常工作。
我尝试以下查询,但它只得到子类别但是,我希望它从一个 table 像
的第 n 级
category|subcategory|sub-subcategory|......
我的 table 是 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;
}
我想在一个 mysql 查询中获取第 n 级类别和子类别的层次结构 我尝试了一些解决方案,但它无法正常工作。 我尝试以下查询,但它只得到子类别但是,我希望它从一个 table 像
的第 n 级category|subcategory|sub-subcategory|......
我的 table 是 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;
}