Формирование запроса с активной записью - PullRequest
1 голос
/ 01 марта 2012

Я пытаюсь сформировать запрос, используя активную запись codeigniter, поиск основан на разделенном запятыми списке, который пользователь может ввести.

Я знаю, как получить критерии поиска в виде отдельных значений:

$criteria = explode($this->input->post('search_criteria');

Что я не знаю, так это как я могу создать запрос в моей модели, который создает достаточно сравнений, основанных на количестве критериев.

Так, например, если пользователь будет искать PHP, HTML, Project Management

Мне нужен запрос, похожий на этот,

SELECT * FROM candidates WHERE candidate_job_tags LIKE %PHP% OR WHERE candidate_job_tags LIKE %HTML% OR WHERE candidate_job_tags LIKE %Project Management%

Можно ли это сделать?

1 Ответ

2 голосов
/ 02 марта 2012

Вы можете использовать метод Active Record class 'or_like() для построения этой части вашего запроса:

// Assuming your array looks like something like this
$criteria = array('PHP', 'HTML', 'Project Management');

foreach($criteria as $key=>$val){
    $this->db->or_like('candidate_job_tags', $val);
}

$query = $this->db->get('candidates');

выдаст запрос, который выглядит следующим образом:

SELECT * FROM (`categories`) WHERE `category_title` LIKE '%PHP%' OR `category_title` LIKE '%HTML%' OR `category_title` LIKE '%Project Management%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...