如何从数据库中获取多维数组?

时间:2012-02-21 19:11:46

标签: php mysql multidimensional-array content-management-system categories

我知道标题可能并不完全是这个,但请耐心等待。 我不知道另一个标题是什么。

看看这是我的情况。 我正在构建一个小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

1 个答案:

答案 0 :(得分:0)

编写查询时,您需要使用ORDER BY子句。对于此特定示例,您需要ORDER BY Parent_ID,Order。这将按Parent_ID排序,然后按Order排序。

然后,您可以使用mysql_fetch_assoc()将结果集解析为关联数组。

由于您将拥有多层次的层次结构,因此只需将结果集存储在由层次结构组成的关联数组中,就必须遍历结果集。

然后可以使用此数组在页面上显示相应的导航层次结构。