Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用闭包表从MySQL获取层次结构_Php_Mysql_Sql_Menu_Closures - Fatal编程技术网

Php 使用闭包表从MySQL获取层次结构

Php 使用闭包表从MySQL获取层次结构,php,mysql,sql,menu,closures,Php,Mysql,Sql,Menu,Closures,我试图使用闭包表从MYSQL中的表中获取菜单结构的层次结构 主表基本上是: menu_id, title, parent_id 结束表: menu_id, ancestor_id, descendant_id, depth 基于此,以下方面的基本方法是什么: 在1个查询中提取数据 在本例中,使用php处理数据以输出整个菜单的层次结构。 我还没有听说过闭包表,至少在您使用的mysql\php方法中是这样。我可以推荐一本Bill Karwin的好书《SQL反模式》。有一章是关于闭包表的,并举例说

我试图使用闭包表从MYSQL中的表中获取菜单结构的层次结构

主表基本上是:

menu_id, title, parent_id
结束表:

menu_id, ancestor_id, descendant_id, depth
基于此,以下方面的基本方法是什么:

在1个查询中提取数据 在本例中,使用php处理数据以输出整个菜单的层次结构。
我还没有听说过闭包表,至少在您使用的mysql\php方法中是这样。我可以推荐一本Bill Karwin的好书《SQL反模式》。有一章是关于闭包表的,并举例说明如何查询闭包表。你能解释一下第一个问题吗?到底应该提取什么?顺便问一下,你知道这只需要一张表就可以做到吗:谢谢你的参考书。Hex,你不能在一张桌子上做这件事。闭包表包含一对多关系。目标是使用一个查询来提取整个n级结构或其任何级别/子级,而不使用递归或其他数据库调用。创建菜单表中的条目时,闭包表将以指数形式增长,因为每个条目都有可用于联接的所有祖先、后代等。此方法允许您从菜单表中的任何元素了解所有家长、孩子和同龄人。