Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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

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

Php 如何使用mysql搜索到子级别的类别?

Php 如何使用mysql搜索到子级别的类别?,php,mysql,select,categories,product,Php,Mysql,Select,Categories,Product,我有一个30000种产品的数据库,所有产品都分配了不同的类别。所有类别都有一个单独的表&子类别也存储在同一个表中。 桌子的结构是这样的 类别(mst) 类别标识主键、类别名称、父级标识 产品名称 产品标识主键、产品名称、类别标识主键(参考类别mst->类别标识主键) 类别存储到任意数量的子级别。 因此,可以有如下类别 衣服>衬衫>儿童>红色 产品存储在任何级别的类别中。 我想做一个查询或一个php脚本,可以找出所有没有产品的类别(到任何子级别) 我该怎么做 提前感谢。您正在尝试在数据库中存储分层

我有一个30000种产品的数据库,所有产品都分配了不同的类别。所有类别都有一个单独的表&子类别也存储在同一个表中。 桌子的结构是这样的

类别(mst) 类别标识主键、类别名称、父级标识

产品名称 产品标识主键、产品名称、类别标识主键(参考类别mst->类别标识主键)

类别存储到任意数量的子级别。 因此,可以有如下类别

衣服>衬衫>儿童>红色

产品存储在任何级别的类别中。 我想做一个查询或一个php脚本,可以找出所有没有产品的类别(到任何子级别)

我该怎么做


提前感谢。

您正在尝试在数据库中存储分层数据。
这种天真的方法非常糟糕,因为MySQL不支持递归查询(与Oracle或SQL server不同)。
更改数据库设计

请参阅:

如果可以为每个子类别获取
类别id\u pk
,请在SQL中使用
语句(“从product\u mst中选择product\u id\u pk,其中category\u id\u pk=X或category\u id\u pk=Y或category\u id\u pk=Z”)。然后使用mysql_num_rows();我建议你改变你的数据库设计,让你的生活更轻松。检查这篇文章