我只是想知道这里的人们的意见,也许一些指导如何最好地实现的东西。从mysql数据库创建菜单结构
我有什么,是一个非常基本的内部网,只需旨在满足了公司范围内的文档和文件。它在页面顶部有一个基本的菜单栏,它有一个顶级菜单项,然后是子菜单/项目。很明显,菜单可以级联到很多级别,并且是一个简单的JavaScript,我使用了动态驱动器,它将一个html结构转换为菜单。
基本思路是这样的:
<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为基准,输入一起,可用于在href链接指向的文件位置的文件名和文件路径。 然后,我可以使用菜单和3个子菜单字段来告诉它在菜单结构中放置该项目的位置。标签只是给出链接的名称,而open打开告诉页面打开文档的位置,即_new,frame,ifram等。
然后,PHP可以使用mysql查询来查找菜单中的所有项目并将它们回显出来。问题出现了,我需要为每个菜单和子菜单提供单独的MySQL查询,这意味着整个菜单最终可能会充满MySQL查询。
任何人都可以建议更好的解决方案,或帮助使PHP尽可能简单和灵活?
非常感谢
编
编辑:
可以提供一些例子PHP的如果需要的话,但他们都相当大。
你打算如何使用left **和right **? – 2012-04-24 15:07:12
左右是告诉你树的真实结构..你可以很容易地采取三级项目的父母,同样容易采取任何项目的所有儿童。所以如果我们需要1个分支的所有子女和子女,则取左边> 1和右边<4。如果只需要1个分支的孩子,可以通过parent_id获取。 – Anton 2012-04-24 21:25:17
我发现这篇文章帮助我理解左右值:http://www.sitepoint.com/hierarchical-data-database-2/ – Drahcir 2012-08-24 16:47:51