首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Opencart 2.3.0.2上按制造商搜索产品

在Opencart 2.3.0.2上按制造商搜索产品
EN

Stack Overflow用户
提问于 2019-03-26 02:29:32
回答 1查看 104关注 0票数 0

我想在Opencart 2.3.0.2上搜索制造商的产品。

catalog/model/catalog/product.php

在此之前

代码语言:javascript
复制
$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)

我把这段代码放在:

代码语言:javascript
复制
 $sql .= " LEFT JOIN " . DB_PREFIX . "manufacturer m ON (m.manufacturer_id = p.manufacturer_id) ";

在这行之前:

代码语言:javascript
复制
$sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";

我把这段代码

代码语言:javascript
复制
 $sql .= " ORDER BY p.quantity<1, LCASE(" . $data['sort'] . ")";

但它告诉我:

未知:无法在catalog\model\catalog\product.php上将DB类的对象转换为字符串

如何在表制造商上搜索名称并按制造商向我的客户显示产品

EN

回答 1

Stack Overflow用户

发布于 2019-03-28 03:58:14

试试这段代码吧,它会帮助你

您的最后一个order by code是错误的-请删除此代码

代码语言:javascript
复制
 $sql .= " ORDER BY p.quantity<1, LCASE(" . $data['sort'] . ")";

请在下面执行此操作

在此之前

代码语言:javascript
复制
$sql .= " GROUP BY p.product_id";

将此代码放入

代码语言:javascript
复制
  $sql .= " AND p.quantity > 0";

您必须为大于零的数量注释此代码

代码语言:javascript
复制
     /* comment this code 
       if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
            if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
                $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
            } elseif ($data['sort'] == 'p.price') {
                $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
            } else {
                $sql .= " ORDER BY " . $data['sort'];
            }
        } else {
            $sql .= " ORDER BY p.sort_order";
        }
    */

并添加以下内容

代码语言:javascript
复制
   if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
        if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
            $sql .= " ORDER BY p.quantity, LCASE(" . $data['sort'] . ")";
        } elseif ($data['sort'] == 'p.price') {
            $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
        } else {
            $sql .= " ORDER BY p.quantity, " . $data['sort'];
        }
    } else {
        $sql .= " ORDER BY p.quantity, p.sort_order";
    }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55344351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档