我正在尝试使用 codeigniter 的事件记录形成查询,搜索基于用户可以输入的逗号分隔列表。
我知道如何将搜索条件作为单独的值输出:
$criteria = explode($this->input->post('search_criteria');
我不知道的是如何在我的模型中创建一个查询,以根据条件的数量创建足够的 where 比较。
例如,如果用户要搜索 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%
这可以做到吗?
最佳答案
您可以使用 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%'
关于php - 使用事件记录形成查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9522887/