Я сделал запрос для поиска (максимум три слова), но его не очень полезно при увеличении числа слов, поэтому мне нужен код для п числа кодовPHP MySQL несколько слов поискового запроса
здесь my site
public function search() {
$s_keywords = $this->input->get('q');
$arr = explode(" ", $s_keywords);
if (count($arr) > 0) {
$query = $this->db->query("SELECT
vacancy_id, vc_title, vc_experience, vc_closedate, tbl_company_cmp_name
FROM tbl_vacancy
WHERE CONCAT(vc_title, ' ', tbl_company_cmp_name) = '$s_keywords' ");
$result = $query->result();
return array('job_search' => $result,);
}
if (count($arr) == 1) {
$query = $this->db->query("SELECT vacancy_id, vc_title, vc_experience, vc_closedate, tbl_company_cmp_name FROM tbl_vacancy
WHERE vc_title LIKE '%{$s_keywords}%' OR tbl_company_cmp_name LIKE '%{$s_keywords}%' ");
$result = $query->result();
return array('job_search' => $result,);
} else if (count($arr) == 2) {
$query = $this->db->query("SELECT vacancy_id, vc_title, vc_experience, vc_closedate, tbl_company_cmp_name FROM tbl_vacancy
WHERE (vc_title LIKE '%{$arr[0]}%' OR tbl_company_cmp_name LIKE '%{$arr[0]}%') "
. "AND (vc_title LIKE '%{$arr[1]}%' OR tbl_company_cmp_name LIKE '%{$arr[1]}%') ");
$result = $query->result();
return array('job_search' => $result,);
} else if (count($arr) == 3) {
$query = $this->db->query("SELECT vacancy_id, vc_title, vc_experience, vc_closedate, tbl_company_cmp_name FROM tbl_vacancy
WHERE (vc_title LIKE '%{$arr[0]}%' OR tbl_company_cmp_name LIKE '%{$arr[0]}%') "
. "AND (vc_title LIKE '%{$arr[1]}%' OR tbl_company_cmp_name LIKE '%{$arr[1]}%') "
. "AND (vc_title LIKE '%{$arr[2]}%' OR tbl_company_cmp_name LIKE '%{$arr[2]}%') ");
$result = $query->result();
return array('job_search' => $result,);
}
}
Вам нужно добавить гораздо больше деталей, как к тому, что вы ищете. –
@ Ханонс, как? это моя модель для поиска (я использую codeigniter) –