有人可以帮我重写这个查询字符串到CodeIgniter活动记录

时间:2013-08-21 15:07:02

标签: codeigniter

请帮帮我:

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

我编写了自己的代码,但有些代码仍然是如何计算行的父代_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();
}

3 个答案:

答案 0 :(得分:0)

你可以试试这个

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

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

答案 1 :(得分:0)

试试这个

$this->db->like('vi_name', $slug)
         ->or_like('en_name', $slug)
         ->where('parent_id <>', 0);

答案 2 :(得分: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();

在我的例子中,我已经为了正确的mysql查找而逃脱了slug,你必须自己做一些额外的检查。