2013-04-02 2 views
0

Итак, у меня есть поисковый запрос для поиска в моей таблице заводов. он работает как шарм, но я все еще новичок в кодеригере.Как искать в нескольких таблицах с помощью codeigniter?

Нужно ли использовать выбор, чтобы выбрать более одной таблицы в моей базе данных?

Моя функция контроллера:

function search() 
    { 
     $this->load->view('views/header'); 
     $this->load->view('views/search'); 
     $this->load->view('views/footer'); 
    } 

    function searchresults() 
    { 
     $match = $this->input->post('search'); 
     $data['query'] = $this->bedrijven_model->get_search($match); 
     $this->load->view('views/header'); 
     $this->load->view('views/searchresults', $data); 
     $this->load->view('views/footer'); 
    } 

Моя модель:

function get_search($match) 
{ 
    $this->db->like('Bedrijfsnaam', $match); 
    $this->db->or_like('Postcode', $match); 
    $this->db->or_like('Plaats', $match); 
    $this->db->or_like('Telefoonnummer', $match); 
    $this->db->or_like('Email', $match); 
    $this->db->or_like('Website', $match); 
    $this->db->or_like('Profiel', $match); 
    $this->db->or_like('Adres', $match); 
    $query = $this->db->get('bedrijven'); 

    return $query->result(); 
} 

Я также интересно, если вы можете поставить searchfunction из модели в контроллер. потому что тогда мне нужно создать новую модельную функцию для каждой таблицы.

Заранее спасибо.

ответ

3

Попробуйте соединить две таблицы, а затем применить как

$this->db->like('Bedrijfsnaam', $match); 
$this->db->or_like('Postcode', $match); 
$this->db->or_like('Plaats', $match); 
$this->db->or_like('Telefoonnummer', $match); 
$this->db->or_like('Email', $match); 
$this->db->or_like('Website', $match); 
$this->db->or_like('Profiel', $match); 
$this->db->or_like('Adres', $match); 

Поиск матча в table2 в col1, col2

$this->db->or_like('table2.col1',$match); 
$this->db->or_like('table2.col2',$match); 

Наконец присоединиться к таблице, к которой вы обратились нравится выше с таблицей 1

$this->db->join('table2','table1.id = table2.id'); 
$query = $this->db->get('bedrijven'); 
+0

@ Kees Sonnema это работает для вас .. ?? – Gautam3164

+0

Вам нужно, чтобы мы правильно ... ??? – Gautam3164

+0

да, это то, что я ищу. –

0

Пример в руководстве пользователя это объяснить:

$this->db->select('*'); // <-- There is never any reason to write this line! 
$this->db->from('blogs'); 
$this->db->join('comments', 'comments.id = blogs.id'); 

$query = $this->db->get(); 

// Produces: 
// SELECT * FROM blogs 
// JOIN comments ON comments.id = blogs.id 

Смотрите все это под Active Record страницы в руководстве пользователя.

+0

Я знаю, как работают соединения, но я не знал, как их реализовать при поиске. –

Смежные вопросы