Как это исправить неоднозначно? - PullRequest
1 голос
/ 25 сентября 2019

Я получаю ошибку базы данных:

Номер ошибки: 1052 «Заголовок» столбца, где предложение неоднозначно SELECT * FROM insp_people, editors_pick, video_upload WHERE title LIKE '% a%' ПОБЕГ '!'

Это модель:

public function getSearch($keyword) {

$this->db->select('*');
$this->db->from('insp_people, editors_pick, video_upload');
$this->db->like('title', $keyword);
$query = $this->db->get();
if($query->num_rows() > 0) {
return $query->result();
}  
}

Это контроллер:

$this->load->model('search_model');  

$this->load->model('inspiringpeoples_model');  
$this->load->model('editorspick_model');  
$this->load->model('uploadvideos_model');  

$data = $this->inspiringpeoples_model->getPosts();  
$data = $this->editorspick_model->getPosts();  
$data = $this->uploadvideos_model->getPosts();    


$keyword = $this->input->post('search');  
$data['results'] = $this->search_model->getSearch($keyword);  

$data['title'] = "Search Results";  

$this->load->view('partials/header1', $data);  
$this->load->view('search_result', $data);  
$this->load->view('partials/footer');       

Я ожидаю, что результаты поиска будут отображаться по этим трем таблицам

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

изменить это

$this->db->like('title', $keyword);

на

$this->db->like('editors_pick.`title`', $keyword); 
or 
$this->db->like('insp_people.`title`', $keyword); 
or 
$this->db->like('video_upload.`title`', $keyword); 
0 голосов
/ 25 сентября 2019

Хотя я не имею никакого представления о PHP.Но я понимаю, что ошибка связана с наличием столбца title в нескольких таблицах, которые вы используете.

Я бы предложил что-то вроде ниже.

SELECT * 
  FROM insp_people ip, editors_pick ep, video_upload vp
 WHERE XX.title LIKE '%a%' ESCAPE '!'

Здесь XX будетодин из псевдонимов (ip, ep, vp), который вы дали таблицам в запросе.Используйте псевдоним таблицы, по столбцу которой вы хотите фильтровать данные.

Надеюсь, это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...