2012-09-13 66 views
0

我想從我的表格中選擇產品,其中Akcie 1和Stav也是1.但它它搜索查詢,所以我在那裏更喜歡。它不工作爲什麼?這裏是查詢Codeigniter db select

$q = $this->db->where('Akcia', 1) 
      ->like('Titul', $vyraz) 
     ->or_like('PodTitul', $vyraz) 
     ->or_like('Autor1', $vyraz) 
     ->or_like('Autor2', $vyraz) 
     ->or_like('Autor3', $vyraz) 
     ->or_like('Autor4', $vyraz) 
     ->or_like('Prekladatel', $vyraz) 
     ->or_like('Rozmer', $vyraz) 
     ->or_like('Vydavatelstvo', $vyraz) 
     ->or_like('ISBN', $vyraz) 
     ->or_like('EAN', $vyraz) 
     ->or_like('Popis', $vyraz) 
     ->or_like('KratkyPopis', $vyraz) 
     ->or_like('RokVydania', $vyraz) 
     ->where('stav', 1) 
     ->order_by('id', 'desc') 
     ->limit($limit) 
     ->offset($offset) 
    ->get('knihy'); 

     return $q->result(); 

這個查詢也seulcting其中Akcia爲0的pruduts爲什麼?

回答

1

那麼,如果我是正確的代碼會產生對SQL此條件:

WHERE Akcia = 1 AND Titul LIKE 'param' OR PodTitul LIKE 'param' etc. 

所以如果有任何「or_like」參數中得到一擊,自動將您的Akcia條件將被忽略和系統仍然顯示所有記錄他們是否有1或0值

你需要的是包括這樣一個括號:

WHERE Akcia = 1 AND (Titul LIKE 'param' OR PodTitul LIKE 'param' etc.) 

我覺得這是你需要什麼,參考此鏈接:

http://codeigniter.com/forums/viewthread/105664/#548079