gpt4 book ai didi

php - 从mysql数据库创建菜单结构

转载 作者:行者123 更新时间:2023-11-29 08:54:39 25 4
gpt4 key购买 nike

我只是想知道这里人们的意见,也许还有一些关于如何最好地实现某些事情的指导。

我拥有的是一个非常基本的内部网,其设计目的只是为了提供公司范围内的文档和文件。它在页面顶部有一个基本菜单栏,其中有一个顶级项目,然后是子菜单/项目。显然,菜单可以向下级联很多层,并且是我动态驱动的一个简单的javascript,它将一个html < li > 结构转换为菜单。

基本思想是这样的:

<li><a href='#'>Top Level 1</a>
<ul>
<li><a href='#'>Item 1</a></li>
<li><a href='#'>Item 2</a></li>
<li><a href='#'>Sub menu 1</a>
<ul>
<li><a href='#'>Sub Item 1</a></li>
</ul>
</li>
</ul>
</li>

所以这用于创建菜单。每次启动一个新的 < ul > 元素时,它都会创建一个子菜单。

这工作正常,但有点痛苦,因为每次网站上的文档发生更改时,我都必须手动创建新链接、删除旧链接等。

我想做的就是将此结构移动到我的数据库中,以便我可以使用基本的 html 表单和 PHP 脚本在需要时插入、更新和删除链接。

如果我无法上传新文件,它还使经理能够上传新文件。

我对此进行了快速尝试,并找到了一个可行的选项,但有点笨拙,并且可能会很痛苦地继续前进。

基本上,我会有一个包含下面列出的列的表格:

  • 文档 ID
  • 文件名
  • 文件路径
  • 菜单
  • 子 1
  • 子2
  • 子3
  • 标签
  • 打开方式
  • 我能做的是有一个唯一的ID作为引用,输入文件名和文件路径,它们一起可以用于href链接来指向文件位置。然后我可以使用菜单和 3 个子菜单字段来告诉它将该项目放置在菜单结构中的位置。标签只是为链接提供一个名称,而 open in 告诉页面在哪里打开文档,即 _new、frame、iram 等。

    然后,PHP 可以使用 mysql 查询来查找菜单中的所有项目并回显它们。问题来了,我需要为每个菜单和子菜单进行单独的 MySQL 查询,这意味着整个菜单很可能最终充满 MySQL 查询。

    任何人都可以建议更好的解决方案,或者帮助使 PHP 尽可能简单和灵活吗?

    非常感谢

    编者

    编辑:

    如果需要,可以提供一些 PHP 示例,但它们相当大。

    最佳答案

    据我所知,最佳实践是嵌套树结构,其逻辑用两个词表示:

    表必填字段:id、parent_id、左、右

    然后,在添加第一行时,您得到了这个值

    1, 0, 1, 2

    下一步将改进左右字段,例如:

    2, 0, 3, 4
    3, 0, 5, 6

    如果我们需要为第一项创建子目录,完整的结构将是这样的:

    1, 0, 1, 4
    2, 0, 5, 6
    3, 0, 7, 8
    4, 1, 2, 3

    这样你就可以轻松地获取所有按左排序的树,然后只需检查每一行的父级别值(如果父级存在)即可计算其自己的级别。

    关于php - 从mysql数据库创建菜单结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10300553/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com