树形菜单 - 4 级

发布于 2024-11-04 04:22:39 字数 322 浏览 0 评论 0原文

我的网站有 4 级菜单结构: 部分(在部分表中),类别(在类别表中,section_id指向部分),然后是页面(在表中页面我有parent_id,因为一个页面实际上可以是另一个页面的子级,并且每个页面都属于一个部分)。

如何构建菜单? (我使用PHP和MySQL) 现在我使用 4 个嵌套查询。首先,我选择所有部分,然后为每个部分选择所有类别,为所有类别选择没有父页面的页面,然后为每个页面选择子页面。

另外,我可以仅使用一个查询(使用 RIGHT JOIN)来获取包含section_id、category_id、page_id、parent_id 的数组。但我不知道如何将此数组转换为树数组。

I have for my website a 4 level menu structure:
sections (in sections tabel), categories (in categories tabel, with section_id pointing to sections) and then pages (in tabel pages I have parent_id because a page can be actually child of another page, and also each page belong to a section).

How can I build the menu? (I use PHP and MySQL)
Now I use 4 nested queries. First I select all sections, then for each section I select all categories, and for all categories I select pages without a parent, and then for each page I select child pages.

Also I can use just one query (with RIGHT JOIN) to get an array with section_id, category_id, page_id, parent_id. But I don't know how to convert this array to an tree array.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

治碍 2024-11-11 04:22:39

使用此类 将查询转换为树数组。

使用示例。

很简单:

$sql_query = "SELECT field1, field2 FROM table WHERE field3='val1' AND field4=5 OR field5='val2';";

$query2tree = new dqml2tree($sql_query);
$sql_tree = $query2tree->make();

print_r($sql_tree); 

Use this class to convert your query to a tree array.

An example of use.

It's as simple as :

$sql_query = "SELECT field1, field2 FROM table WHERE field3='val1' AND field4=5 OR field5='val2';";

$query2tree = new dqml2tree($sql_query);
$sql_tree = $query2tree->make();

print_r($sql_tree); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文