我有一个经过严格修改的 opencart 商店。 我想在主类别页面上显示子类别中的所有产品。这是我的产品模型文件中的半成品代码。
} else {
$cat_sql = "SELECT `category_id` FROM `" . DB_PREFIX . "category_path` WHERE `path_id` = '" . (int)$data['filter_category_id'] . "'";
$cat_query = $this->db->query($cat_sql);
if ($cat_query->num_rows) {
$sql .= " AND (p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
foreach($cat_query->rows as $cat) {
$sql .= " OR p2c.category_id = '" . (int)$cat['category_id'] . "'";
}
$sql .= ")";
} else {
$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
}
}
它应该显示这些产品。
但现在我有另一个表用于多个父类别。
我的问题是:如何显示子类别中的产品,其中我只有 parent_id
而不是 path_id
。
多类别表很简单。
category_id/parent_id
如何修改上面的代码,以便它显示子类别中没有 path_id
仅 parent_id
的所有产品?
最佳答案
您不需要修改sql,只需传递额外的参数'filter_sub_category' => true
,它就会列出所有产品,包括子类别
$filter_data = array(
'filter_category_id' => $category_id,
'filter_sub_category' => true
);
$results = $this->model_catalog_product->getProducts($filter_data);
关于php - Opencart从唯一表进行sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34092435/