来自唯一表的Opencart sql查询

时间:2015-12-04 16:03:30

标签: php mysql opencart2.x

我有一个强烈修改的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的所有产品?

1 个答案:

答案 0 :(得分:0)

您不需要修改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);