您好我有一个愚蠢的问题。但也许不是。 在数据库中我有表类别,我有4个列 Id,parent_id,标题和描述。 Parent_id是当前类别的子项。
Id | parent_id | title | description
___________________________________________________
1 | 1 | Main Category | description
2 | 1 | Sub Category | description
3 | 2 | Other Category | description
4 | 1 | Some Category | description
好的,我知道如何输入数据和显示结果;那不是问题。当我在表格中显示结果时
<table>
<tr>
<td> Id </td>
<td> Parent </td>
<td> Title </td>
<td> Desc </td>
</tr>
<?php foreach($categories as $category): ?>
<tr>
<td> <?php echo $category->id; ?> </td>
<td> <?php echo $category->parent_id; ?> </td>
<td> <?php echo $category->title; ?> </td>
<td> <?php echo $category->eescription; ?> </td>
</tr>
<?php endforeach;?>
</table>
这非常有用,可以在其他父类别下显示子类别:表格如下所示:
1 | 1 | Main Category | description
2 | 1 | Sub Category | description
3 | 2 | Other Category | description
4 | 1 | Some Category | description
我的问题是如何列出所有类别和子类别
|-- Main Category
|--- Sub Category
|--- One more cat
|--Other Category
|--- Some Category
喜欢这个
是否可以使用forach()获取此数据?任何例子如何做到这一点。
由于
答案 0 :(得分:2)
了解这个http://www.sitepoint.com/hierarchical-data-database-2/。应该解决你的问题。
答案 1 :(得分:1)
我这样做。我正在开发Codeigniter框架。如果有任何需要,我将发布如何解决这个问题,如截图。
简单的制作模型:
模型
/*
* Get all children categories
*
* Get Hierarchical Data from Categories
*
* @ikac
*/
public function fetchChildren($parent, $level) {
$this->handler = $this->db->query("SELECT * FROM content_categories WHERE parent='".$parent."' ");
foreach($this->handler->result() as $row) {
echo str_repeat(' |-----', $level).$row->title .'<br>';
$this->fetchChildren($row->title, $level+1);
}
}
}
就像输出一样,你会得到
Default
|-----Sub Category
|-----Test Category 1
|-----Seccond Test Category 1
感谢@Eugene