这是我的术语表(类别)的数据库结构:
id | name | parent_id | level | position
--------------------------------------------------------------
1 | term 1 | NULL | 0 | 1
2 | term 2 | 1 | 1 | 1
3 | term 3 | 1 | 1 | 2
4 | term 4 | NULL | 0 | 2
5 | term 5 | 4 | 1 | 1
所以术语 2 和 3 是 1 的第一级孩子,而 5 是 4 的第一级孩子
这是我的查询:(这是不正确的,这应该是固定的)
SELECT
`id`,
`name`
FROM
`terms`
ORDER BY
`position` ASC,
`level` ASC
这是我的 php:
$terms = array();
// query part
if(!$this->_db->resultRows > 0)
return $terms;
while($d = $this->_db->fetch($r))
{
$terms[$d->id] = new Term($d->id);
}
return $terms;
当前结果:
term 1
term 2
term 5
term 4
term 3
但结果应该是:
term 1
term 2
term 3
term 4
term 5
我不知道如何更改查询以获得正确的结果
目标是在(多个)选择框中输出它
我知道如何使用嵌套列表,但你不能嵌套选择