[英]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.)
我認為這是您需要的,請參考此鏈接:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.