Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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_Arrays - Fatal编程技术网

Php 作为多维数组从MySQL返回结果

Php 作为多维数组从MySQL返回结果,php,mysql,arrays,Php,Mysql,Arrays,我必须在MySQL表中存储树状数据结构。任何节点都可以有任意数量的子节点,并且树的深度不是固定的。我已经创建了一个带有父节点列的表,这样我就可以遍历树。我需要从表中获取以给定节点为根的整个树,并在php页面中呈现它。我可以创建一个过程来返回给定父对象的所有子对象并进行渲染。但为此,我必须为每个节点递归地启动一个查询。我希望在单个查询中返回以给定节点为根的整个树结构。有什么方法可以做到这一点吗?您正在寻找的是在关系数据库中存储分层数据的方法 如果您想避免递归,您将不得不以额外的列或表的形式复制一些

我必须在MySQL表中存储树状数据结构。任何节点都可以有任意数量的子节点,并且树的深度不是固定的。我已经创建了一个带有父节点列的表,这样我就可以遍历树。
我需要从表中获取以给定节点为根的整个树,并在php页面中呈现它。我可以创建一个过程来返回给定父对象的所有子对象并进行渲染。但为此,我必须为每个节点递归地启动一个查询。
我希望在单个查询中返回以给定节点为根的整个树结构。有什么方法可以做到这一点吗?

您正在寻找的是在关系数据库中存储分层数据的方法

如果您想避免递归,您将不得不以额外的列或表的形式复制一些数据,这些列或表包含祖先/后代信息


请看下面的URL,其中描述了几种方法:

您可以在其中包含相关表格的描述吗?我只有一个表格。每一行都有一个节点的描述和到父节点的链接。根节点的父节点为null。有没有更好的方式来代表?谢谢,您需要发布您尝试过的代码,并说明您遇到的具体问题。这听起来像是你在读作业,让别人帮你做。我哪里都没有卡住。我可以使用递归获取树,但我不想使用递归,因为树在深度或子级数量上没有上限,所以我问是否有任何方法来构造数据,这样我就可以从数据库中通过一次查询得到整个树。感谢链接,我正在浏览它。