Как изолировать логику Like() и or_like() от логикиwhere() с помощью построителя запросов CodeIgniter [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как изолировать логику Like() и or_like() от логикиwhere() с помощью построителя запросов CodeIgniter [дубликат]

Сообщение Anonymous »

Я пытаюсь изучить CodeIgniter (CI3), создавая проект по поиску работы. Я пытаюсь создать в нем систему поиска вакансий с несколькими полями ввода. У меня есть три поля в форме. Моя форма ниже
Скриншот формы
Мой код контроллера:

Код: Выделить всё

class Search extends CI_Controller
{
public function normal()
{
$this->form_validation->set_rules('job_keywords', 'Job Keywords', 'required');

if ($this->form_validation->run() == FALSE) {
$viewdata['main_view'] = 'home';
$this->load->view('layout/main', $viewdata);
} else {
$search_term = $this->input->post('job_keywords');
$location = $this->input->post('job_location');
$type = $this->input->post('job_type');
$searchdata['search_results'] = $this->search_model->default_search($search_term, $location, $type);

$searchdata['main_view'] = 'search_page';
$this->load->view('layout/main', $searchdata);
}
}
}
Моя модель:

Код: Выделить всё

public function default_search($search_term, $location="", $type)
{
$searchterm = $search_term;

$this->db->like('job_title', $searchterm);
$this->db->or_like('job_description', $search_term);

$this->db->where('type_id', $type);

if ($location!= "") {
$this->db->like('location_id', $location);
}

$res = $this->db->get('jobs');

if ($res->num_rows() >= 1) {
return $res->result();
} else {
return false;
}
}
I am getting the search results when I am just using $this->$db->like() and $this->$db->or_like() but when I am using a $this->$db->where() the query doesn't follow the WHERE clause. Когда я удаляю $this->$db->or_like(), он работает нормально, но не с двумя предложениями Like. Может кто-нибудь сказать мне, где я ошибаюсь?
Структура таблицы должностей с двумя строками данных

Подробнее здесь: https://stackoverflow.com/questions/369 ... deigniters
Ответить

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

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

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

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

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