Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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 存储和生成类别层次结构的最有效方法是什么?_Php_Mysql_Hierarchy_Hierarchical Data_Categories - Fatal编程技术网

Php 存储和生成类别层次结构的最有效方法是什么?

Php 存储和生成类别层次结构的最有效方法是什么?,php,mysql,hierarchy,hierarchical-data,categories,Php,Mysql,Hierarchy,Hierarchical Data,Categories,我正在用PHP创建一个基本的购物车,我想知道,存储和生成具有无限子类别的层次结构格式的类别列表的最佳方法是什么 目前,我加载主要类别,然后从数据库中获取子类别等,在大型站点上会创建100多个查询 那么,什么是更好的做事方式呢 以下是我当前的MySQL表结构: cat_id cat_name cat_desc cat_parent_id status priority 我的目标是1查询。Wordpress做得很好: 见:和 如果你走这条路 这有一些问题查询逻辑,用于抓取可能有用的类别() 关

我正在用PHP创建一个基本的购物车,我想知道,存储和生成具有无限子类别的层次结构格式的类别列表的最佳方法是什么

目前,我加载主要类别,然后从数据库中获取子类别等,在大型站点上会创建100多个查询

那么,什么是更好的做事方式呢

以下是我当前的MySQL表结构:

cat_id  
cat_name
cat_desc
cat_parent_id
status
priority

我的目标是1查询。

Wordpress做得很好:

见:和

如果你走这条路 这有一些问题查询逻辑,用于抓取可能有用的类别()

关键的一点是,带有类别的表有一个条目,因此您可以让它知道该类别是否有父类别(允许您将表连接到它本身)。

查看此帖子:


它使用一个查询从数据库中获取所有类别,然后操纵数组来创建子类别。我修改了在Codeigniter中使用的答案,效果非常好。如果您想使用Codeigniter,可以在此处发布修改后的代码。

有关可以使用的递归函数,请参阅my to,这样就不必为循环中的每个类别调用数据库。您的代码支持多少子类别级别?无限?是的,没有“最大深度”,它将递归到数据中最深嵌套类别的深度。