簡體   English   中英

Codeigniter數據庫選擇

[英]Codeigniter db select

我想從我的表中選擇產品,其中Akcie 1和Stav也是1。但是它搜索查詢,所以我有更多喜歡的商品。 它為什么不起作用? 這是查詢

$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();

該查詢還選擇Akcia為0的pruduts,為什么?

好吧,如果我正確的話,代碼將在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM