dongshi6844 2015-05-08 11:21
浏览 68
已采纳

如何在单个表中获取所有父名称及其ID

I have the following table :

enter image description here

Now i need to fetch all category with its parent category

like for:

category_id 1 -> "category_id=1;category_name=Electronic";<br/>
category_id 2 -> "category_id=2;category_name=Media";<br/>
category_id 3 -> "category_id=3;category_name=Mobile-Charger,parent_name=mobile" parent_id=1;<br/>
category_id 4 -> "category_id=4;category_name=Mobile-Charger,parent_name=Mobile" parent_id=1 ;
// and in that case Mobile also has a parent Electronic Product

I Need To fetch all hierarchy relation for 9 category like associative array

like this type :

[{"category_id":"1","category_name":"Electronic Product","parent_id":"0","child":[{"category_id":"3","category_name":"Mobile","parent_id":"1","child":[{"category_id":"4","category_name":"Mobile-Charger","parent_id":"3","child":[]}]}]},{"category_id":"2","category_name":"Media","parent_id":"0","child":[{"category_id":"5","category_name":"media-child-1","parent_id":"2","child":[]},{"category_id":"6","category_name":"media-child-2","parent_id":"2","child":[{"category_id":"8","category_name":"media-child-6-child-1","parent_id":"6","child":[]},{"category_id":"9","category_name":"media-child-6-child-2","parent_id":"6","child":[]}]},{"category_id":"7","category_name":"media-child-3","parent_id":"2","child":[]}]}]

  • 写回答

4条回答 默认 最新

  • douyin4561 2015-05-15 11:04
    关注
    <?php
    
    include 'config.php';
    static $all_data =  array();
    $all_data =  buildCategories($all_data, 0);
    echo json_encode($all_data);
    
    function buildCategories($all_data2, $parent) 
    {
    
        $q = "Select * from category where parent_id = ".$parent;
        if($rs = getRSQuery($q))
        {
            $all_data2 = $rs;
                    if($all_data2!='Not Found')
                    {
            foreach($all_data2 as $index => $catDetails)
            {
                $all_data2[$index]['child'] = array();
                $all_data2[$index]['child'] =  buildCategories($all_data2[$index]['child'], $catDetails['category_id']) ;
            }
                    }
        }
        else
            return array();
        return $all_data2;
    
    }
    
    
    function getRSQuery($query)
    {
    
        $query_result = array();
        $result_set=  mysql_query($query);
        if(!$result_set)
        {
            die('Could not get data: ' . mysql_error());
        }
        $num_rows= mysql_num_rows($result_set);
        if($num_rows>0)
        {
          $index = 0;
          while(($row = mysql_fetch_array($result_set, MYSQL_ASSOC)) != FALSE)
            {
                foreach($row as $colName =>$val)
                {
                    $query_result[$index][$colName] = $val;             
                }
                $index++;
            }
            return $query_result;       
        }
        else
            return "Not Found";
    }
    
    
    
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容