0

请帮我:

SELECT * 
FROM  `product` 
WHERE  `vi_name` LIKE  '%product%'
OR  `en_name` LIKE  '%product%'
AND `parent_id` != 0

我写了我自己的代码,但它仍然计算行的一些方式有 parent_id = 0

function get_product_by_search_slug($slug) {
        $this -> db -> from('product');
        $this -> db -> like('vi_name', $slug);
        $this -> db -> or_like('en_name', $slug);
        $this -> db -> where_not_in('parent_id', 0);
        $query = $this -> db -> get();
        return $query -> result();
}

我得到了一个解决方案,它工作正常,但不知何故我对它不太满意:

function get_product_by_search_slug($slug) {
        $this -> db -> select("* FROM `product` WHERE `vi_name` LIKE '%". $slug ."%' OR `en_name` LIKE '%". $slug ."%' AND `parent_id` != 0");
        $query = $this -> db -> get();
        return $query -> result();
}
4

3 回答 3

0
$slugQ = $this->db->escape_like_str($slug);
$this->db
    ->select('*')
    ->from('product')
    ->where("(vi_name like '%$slugQ%' OR en_name like '%$slugQ%')", NULL, FALSE)
    ->where('parent_id !=', 0)
    ->get()
    ->result();

在我的示例中,我已经成功地避开了 slug 以进行正确的 mysql 查找,您必须自己进行一些额外的检查。

于 2013-08-23T20:47:19.237 回答
0

试试这个

$this->db->like('vi_name', $slug)
         ->or_like('en_name', $slug)
         ->where('parent_id <>', 0);
于 2013-08-21T17:42:15.423 回答
0

你可以试试这个

where('parent_id !=','0')

如果您遇到任何问题,请告诉我

于 2013-08-21T15:17:01.787 回答