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

あなたはこれを試すことができます

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

問題が発生した場合はお知らせください

于 2013-08-21T15:17:01.787 に答える
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 ルックアップのためにスラグを喜んでエスケープしました。自分でいくつかの追加チェックを行う必要があります。

于 2013-08-23T20:47:19.237 に答える