我使用kohana框架,我正在尝试编写递归函数来创建类别树。
我的分类表
id int(11) NO PRI NULL auto_increment
name varchar(50) NO NULL
parent_id int(11) NO NULL
projects_count int(11) NO NULL
我的例子不起作用
public static function category_list($parent_id = 0)
{
$result = Database::instance()->query('
SELECT name, projects_count
FROM project_categories
WHERE parent_id = ?',
array($parent_id)
);
$project_categories = array();
foreach($result as $row)
{
$project_categories[] = $row;
Project_Categories_Model::factory()->category_list($parent_id + 1);
}
return $project_categories;
}
答案 0 :(得分:1)
使用这种分层数据实现非常不理想,因为要获得所需的每个子类别,都需要对数据库进行单独查询。像这里你想创建递归函数。
如果您仍然可以更改表格架构,请查看Managing Hierarchical Data in MySQL。
本文描述了一个解决方案,如何在一次查询中获取整个层次结构,因此不需要递归函数。