Как искать строки, ГДЕ значения столбца могут быть точными или частичными, с помощью построителя запросов CodeIgniter [дPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как искать строки, ГДЕ значения столбца могут быть точными или частичными, с помощью построителя запросов CodeIgniter [д

Сообщение Anonymous »

Я использую preg_split, чтобы найти некоторые результаты, и он отлично работает, за исключением (как ни странно) первого слова.
Например, если есть элемент под названием «телефон синий» и я ищу «случайный телефон», я ничего не получаю, однако если я ищу «случайный телефон» (или «что-то телефонное», «что-то случайное по телефону» и т. д.), он находит «телефон синий».
Я искал разные выражения и пробовал их (например, @[\W]+@ , /[\s,]+/ и т. д.). Но ничего не помогает. Я могу только предположить, что первая попытка найти элемент (с полной строкой) приводит к путанице, но понятия не имею, как это сделать. Совершенно новичок в этом!
Спасибо за любую помощь.
РЕДАКТИРОВАТЬ: забыл отметить, что простой поиск по слову «телефон» также не работает.
function find_by_location_or_name($where) {

// first try complete
$this->db->where('items_location', $where);
$this->db->or_like('items_name', $where);
$query = $this->db->from('items_table')->get();

// if nothing, break it up, try again
if( !$query->num_rows) {
$where_like = preg_split('/ /', $where);

$tryagain = false;

foreach($where_like as $like) {
if(! $tryagain) {
$this->db->like('items_location', $like);
} else {
$this->db->or_like('items_name', $like);
}
$tryagain = true;
}

// Do the query
$query = $this->db->from('items_table')->get();
}
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»