【发布时间】:2014-02-26 14:36:19
【问题描述】:
我正在尝试实现以下目标: Get all child, grandchild etc nodes under parent using php with mysql query results
但我希望在不将所有内容放入数组且不嵌套 if 语句的情况下执行此操作 - 只需逐个浏览第一级,然后: - 打印项目 - 如果该项目有一个孩子找到它并打印它 - 如果孩子有孩子找到并打印 - 如果孩子没有孩子,则向上一级并寻找下一个孩子或项目,它是孩子 - 依此类推……最好放入一组 UL LI 列表和子列表
我的数据库和输出也需要排序,所以看起来更像这样:
id name parent_id orderby
1 Electronics 0 0
2 Televisions 1 10
3 Portable Electronics 1 20
4 Tube 2 20
5 LCD 2 10
6 Plasma 2 30
7 Mp3 Players 3 30
8 CD Players 3 20
9 2 Way Radios 3 10
10 Flash 7 10
我可以使用 if 语句来做到这一点,但要做到这一点,我需要知道最深的孩子有多少层,以及是否有 7 个层会变得混乱。我已经看到它(在上面的链接中)放入了一个多维数组,但似乎您需要为每个语句嵌套才能再次获取数据,这与嵌套 if 解决方案几乎相同。
我很确定答案就在我的眼皮底下,但在这里或其他地方找不到......
WordPress 似乎有办法做到这一点,但我无法找到那里的代码。
任何帮助将不胜感激!
【问题讨论】:
-
我不确定我是否理解您期望输出完成后的样子。你能举个例子吗?
-
orderBy是干什么用的? -
您可以使用递归实现任何级别的嵌套解决方案。
-
现在我想创建一个页面,列出网站上的所有页面(如 Windows 中的文件管理器)。我需要 orderby,因为显示页面(及其子项)的顺序很重要。是不是清楚一点?