2012-03-01 46 views
1

我想用codeigniter的活動記錄形成一個查詢,搜索是基於逗號分隔的列表,用戶可以輸入。形成一個具有活動記錄的查詢

我知道如何讓搜索標準出來爲sepererate值:

$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%

可以這樣做?

回答

2

可以使用Active Record classor_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%'