2016-07-25 12 views
0

キーワードで検索しようとしていますが、business_typeが製造元の行だけで検索しようとしていますが、動作していないため、すべての行が表示されています。これは私のモデル内のメソッドです:Codeigniter 3でlike、or_like、get_whereを一緒に使う方法

public function search($keyword) { 
    $this->db->like('category',$keyword); 
    $this->db->or_like('keyword',$keyword); 
    $this->db->or_like('products_deals_with',$keyword); 
    $this->db->or_like('buisness_name',$keyword); 
    $params['conditions'] = array(
     'business_type' => 'manufacturer' 
    ); 
    $query = $this->db->get_where('business_listings', $params['conditions']); 
    return $query->result_array(); 
} 

生成されたクエリは次のとおりです。

SELECT * FROM `business_listings` 
WHERE `category` LIKE '%%' ESCAPE '!' 
OR `keyword` LIKE '%%' ESCAPE '!' 
OR `products_deals_with`LIKE '%%' ESCAPE '!' 
OR `buisness_name` LIKE '%%' ESCAPE '!' 
AND `business_type` = 'manufacturer' 
+0

多分ちょうど彼らがひどく相互作用している場合、 'ます$ this-> DB-> WHERE'と'ます$ this-> DB->はGET'でしょうか?また、生成されたSQLクエリを提供できますか? – CollinD

+0

SELECT * FROM 'business_listing' WHERE' category' LIKE '%%' ESCAPE '!' OR 'キーワード' LIKE '%%' ESCAPE '!' OR 'products_deals_with' LIKE '%%' ESCAPE '!' OR 'buisness_name' LIKE '%%' ESCAPE '!' AND 'business_type' = 'manufacturer' –

+0

コメントを投稿するのではなく、この情報で質問を更新してください。 – CollinD

答えて

3

私は解決策を見つけました。私は$ this-> db-> group_start()を使っています。 $ this-> db-> group_end();

public function search($keyword) { 

    $this->db->select('*'); 
    $this->db->where("business_type = 'manufacturer'"); 
    $this->db->group_start(); 
    $this->db->like('category',$keyword); 
    $this->db->or_like('keyword',$keyword); 
    $this->db->or_like('products_deals_with',$keyword); 
    $this->db->or_like('buisness_name',$keyword); 
    $this->db->group_end(); 
    $query = $this->db->get('business_listings'); 
    // echo $this->db->last_query(); 
    return $query->result_array(); 

} 

生成されたクエリ:

SELECT * FROM `business_listings` 
WHERE `business_type` = 'manufacturer' 
AND (
`category` LIKE '%%' ESCAPE '!' 
OR `keyword` LIKE '%%' ESCAPE '!' 
OR `products_deals_with` LIKE '%%' ESCAPE '!' 
OR `buisness_name` LIKE '%%' ESCAPE '!') 
関連する問題