类别表如下所示:
id -- name -- parent_id
1 -- Men -- 0
2 -- Women -- 0
3 -- Shirts -- 1
4 -- Half-sleeve -- 3
5 -- Full-sleeve -- 3
关系表:
Product_id -- Category Id
1 -- 2
2 -- 2
3 -- 4 ....
我可以轻松检索任何一个类别及其直接子类别中的产品数量。但如果超过 2 个级别,事情就会变得困惑。
所以我的问题是如何获取男士及其子类别中所有产品的数量。或者衬衫及其子类别?
任何想法,谢谢。
更新:
我知道有嵌套集模型,但我现在无法将结构更改为该模型。
最佳答案
如果可能的话我会查看Managing Hierarchical Data in MySQL .
一开始很难让你头脑清醒,但它会让这样的任务变得更容易。
如果你不能做到这一点,你将不得不执行递归函数,例如:
$prods = 0;
function getProdsInCat($cat)
{
global $prods;
$prods += mysql_result(mysql_query(SELECT COUNT(`Product_id`) FROM `prod_to_cat` WHERE `Category Id` = '".$cat."'),0);
$moreCats = mysql_query("SELECT `cat_id` FROM `cats` WHERE `parent_id` = '".$cat."'");
while($cats = mysql_fetch_assoc($moreCats)
{
getProdsInCat($cats['cat_id']);
}
}
关于php - 如何获取某个类别及其子类别(以及子子类别)中所有产品的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1576952/