如何获取所有类别的子项并在mySql中将它们显示为树?

时间:2016-01-05 09:41:04

标签: php mysql sql performance tree

我在mySql中有一个树系统表。

categories表:

category_id category_title {{1 }}
category_parent_id 1 Technologies
0 2 Web
1 3 OS
1 4 Software
1 5 Hardware
1 6 PHP
2 7 HTML
2 8 JavaScrip
2 9 Jquery
8 10 Angulra.js

当你看到我的数据时,我有一个树系统,我希望有一个PHP函数或一个SQL查询来返回如下所有的孩子:

8                 

你能帮帮忙吗?

1 个答案:

答案 0 :(得分:0)

function list_to_tree($list, $pk = 'category_id', $pid = 'category_parent_id', $child = '_child', $root = 0)
{
    $tree = array();
    if (is_array($list))
    {
        $refer = array();
        foreach ($list as $key => $data)
        {
            $refer[$data[$pk]] =& $list[$key];
        }
        foreach ($list as $key => $data)
        {
            $parentId = $data[$pid];
            if ($root == $parentId)
            {
                $tree[] =& $list[$key];
            }
            else
            {
                if (isset($refer[$parentId]))
                {
                    $parent =& $refer[$parentId];
                    $parent[$child][] =& $list[$key];
                }
            }
        }
    }
    return $tree;
}