[英]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.