我知道标题可能并不完全是这个,但请耐心等待。 我不知道另一个标题是什么。
看看这是我的情况。 我正在构建一个小cms系统(为我自己并从中学习)。我希望CMS中的页面按类别列出和排序。 它看起来像这样:
Webpages
- Home
-- homepage(this is the web page itself)
- News
-- Latest news
-- Archive
这个系统意味着我将有子类别。
在数据库中我做了一个表:
| ID | Parent_ID | Name | Lable | Order|
1 1 Webpages webpages 1
2 1 Home home 1
3 1 News news 2
正如您在此处所见,主要类别是网页类别,主页和新闻是其子类别。 这两个类别是有序的,因此首页类别首先是新闻第二。
我面临的问题是: 如果我想获得所有子类别意味着我需要从主要类别Webpages开始,并且使用该ID我可以获得主要类别的子类别。
我认为你可以看到这有多深,这意味着(我认为)最终将会为每个子类别运行许多查询。
所以我的问题是: 有没有办法在一个2级查询中以正确的顺序一次性获取所有子类别。
如果您有答案,请告诉我。
thnks
答案 0 :(得分:0)
编写查询时,您需要使用ORDER BY子句。对于此特定示例,您需要ORDER BY Parent_ID,Order。这将按Parent_ID排序,然后按Order排序。
然后,您可以使用mysql_fetch_assoc()将结果集解析为关联数组。
由于您将拥有多层次的层次结构,因此只需将结果集存储在由层次结构组成的关联数组中,就必须遍历结果集。
然后可以使用此数组在页面上显示相应的导航层次结构。