[英]PHP Show Products within the child categories… custom shopping cart
我有一个正在做的购物车。 我很困惑,无法找到如何在属于我所关注类别的多级类别中加载产品。
例如:-汽车Subarus(传统,内陆地区)-Holden(科莫多,加来)-Toyota(花冠,凯美瑞)
如果我在“汽车”类别中查找,可以选择子类别,但无法查看这些子类别中的实际产品。 有什么办法可以做到吗? 即使您可以拥有无限级别的类别,例如“ ROOT> Cars> Sedan> Subaru's ...”?
每个产品都有一个与类别相关的类别ID。 每个类别都有其唯一的ID和一个“父代” ID,该“父代” ID为其所属的类别的ID。
我认为您需要做的是建立一个类别ID列表,然后为您的sql构造一个IN
子句。 假设您具有以下类别结构:
要获取某个类别的所有后代,您需要使用以下内容遍历父/子结构:
/**
* I'm only writing pseudocode here btw; I haven't tested it.
* Obviously you'll need to fire the SQL commands...
*/
function getKids ($id, $found = array())
{
array_push ($found, $id);
$nbrKids = "select count(id) from category where parent_id = $id";
if ($nbrKids > 0) {
$newKids = "select id from category where parent_id = $id";
foreach ($newKids as $kid) {
return getKids ($kid, $found);
}
}
else {
return $found;
}
}
然后像这样调用getKids()
,其中$id
是您的类别ID:
$ids = getKids($id);
$ids
是您感兴趣的所有类别的数组。然后可以使用join()
构造一个SQL字符串:
$sql = "select * from cars where category_id in (" . join (",", $ids) . ")";
为了正确起见,应首先检查$ids
至少具有1个成员,否则您的SQL查询将无效。
[编辑:实际上,在上面的代码中, $ids
将始终至少有一个成员:初始ID。 但是,该代码无法验证初始ID是有效的category_id。 ]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.