2010-06-14 86 views
0

我使用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; 
} 

回答

1

使用这种分层数据执行的是高度非最佳,因为让每一个子目录,你需要做一个单独的查询数据库。像这里一样你想创建递归函数。

如果您仍然可以更改您的表架构,请检查Managing Hierarchical Data in MySQL

本文介绍了一种解决方案,即如何在一次查询中获取整个层次结构,因此递归函数将不是必需的。