我正在为客户创建一份问卷,要求将问题按 3 层级别组织。我已经成功创建了 UI,但是在过去的 3 个小时里我一直在尝试从数据库中提取数据,以使所有内容都加载到正确的位置。数据库是由客户端组织的,所以我无法控制它:
id description parentId about
1 Level 1 0 This is the top level or in my case tab1
2 Level 2 0 This is the next tab in the top level
3 Level 1a 1 This is the first category under tab1
4 Level 1b 1 This is the next category under tab1
5 Level 1a1 3 This is the content under the first category of tab1
因此,任何 parentId 为 0 的内容都是顶层,并且将包含 parentId 为 1 的任何第二级内容,依此类推。令人困惑的是,我几乎无法理解这一点,但这就是我被告知这样做的方式。
什么方法是执行这样的事情的最佳方式?下面附上了我用作参考的另一个问题的示例(尽管不起作用)
foreach (mysql_query("SELECT * FROM pB_test ORDER BY id ASC") as $row) {
$menuitem = array_merge(array(), $row);
$menuLookup[$menuitem['id']] = $menuitem;
if ($menuitem['parent'] == null) {
$menuitem['path'] = "/" . $menuitem['name'];
$menu[] = $menuitem[];
} else {
$parent = $menuLookup[$menuitem['parent']];
$menuitem['path'] = $parent['path'] . "/" . $menuitem['name'];
$parent['menu'][] = $menuitem;
}
}
任何帮助将不胜感激。干杯