ритинг очень простой поиск с использованием подобных и возможность опре деления параметров, однако я считаю, что подобный оператор делает запрос игнорировать оператор where
$this->db->like('LOWER(location) OR LOWER(name)', strtolower($term)); $this->db->where('stage', 1); $this->db->order_by("name", "asc"); $query = $this->db->get($this->user_table); return $query->result();
Пример того, что вызывается выше, с $ term = "dublin";
SELECT * FROM (`users`) WHERE `stage` = 1 AND LOWER(location) OR LOWER(name) LIKE '%dublin%' ORDER BY `name` asc"
Он по-прежнему возвращает строки, где «stage» не равно 1.
Есть идеи? Спасибо!
$term = strtolower($term); $this->db->where("(LOWER(location) LIKE '%{$term}%' OR LOWER(name) LIKE '%{$term}%')");
$query = $this->db->query("SELECT id_alimento, nombre, unidad, energia_kcal FROM catalogo_alimentos WHERE LOWER(nombre) LIKE '%".$this->db->escape_like_str($search)."%'"); if($query != false){ if ($query->num_rows() > 0) { return $query->result(); } }
Заменить это для запроса
$term = strtolower($term); $this->db->where("stage= 1 AND (LOWER(location) LIKE '%{$term}%' OR LOWER(name) LIKE '%{$term}%')");