php - 我想在一个mysql查询中获得第n级的类别和子类别的层次结构

标签 php mysql drop-down-menu menu submenu

我想在一个 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/

相关文章:

javascript - jQuery ajax 在每个/任何 ajax 请求的数据中添加更新的变量

php - 我在 Android 中将 JSON 对象解析为 String 时出错

php - 从mysql表中选择数据和从另一个表中选择相关数据进行连接

php - 是每个 mysql 用户的 mysql 并发连接限制还是每个本地主机的限制

jquery - jquery下拉菜单的无限高度(slideUp和slideDown)

php - 如何使用 api 和 json 从一个网站访问另一个网站的数据

php - CakePHP 查询 - 复杂的 AND/OR 条件

PHP mysql_connect 带有 false 变量

php - 如何使用第一个选择中的 $_REQUEST 来填充下拉 sql 查询中的第二个选择

php - 将动态填充的下拉列表的值传递给 PHP 文件