1

这个想法是将所有网页数据(标题、描述、打开的图形标签等)保存到数据库表中。当然,某些页面应该是其他页面的子页面。例如,“服务”下应该有“营销”和“摄影”。

为简化起见,假设该表如下所示:

  • 网页编号
  • 标题
  • 父网页 ID

我需要找到一种方法来遍历所有这些数据,并使用 PHP 打印一个 HTML 列表:

<ul>
    <li>home</li>
    <li>
        services
        <ul>
            <li>marketing</ul>
            <li>photography</ul>
        </ul>
    </li>
</ul>

我正在尝试构建一个应该可重用的系统,并且无法知道递归的深度,因此我需要一种方法来始终确保我检查了所有内容。

在另一个内部使用 foreach 循环似乎不是最好的解决方案。

提前致谢。

4

1 回答 1

1

基本上,您正在处理分层数据。递归(或多个循环中的多个循环)不是解决方案,因为您不想运行无穷无尽的 SQL 查询,只是为了显示一个导航列表。如果您查看这篇文章,您会发现有两种方法/结构可供您使用。Adjacency List ModelNested Set Model。_

Nested Set Model看起来像这样:

在此处输入图像描述

有问题的文章有很多示例查询,您可以查看和使用。

于 2013-11-15T11:23:48.107 回答