Как мне искать в объединенной таблице? - PullRequest
0 голосов
/ 25 мая 2018

Пример моей таблицы:


customer (id , name ....)
transactions (id , sender , receiver .....)

Отправитель и получатель связаны с идентификатором клиента


Я присоединился к таблице с помощью

$this->db->select('transactions.*', FALSE);


    $this->db->select('tbl_receiver.name as receiver_name,tbl_sender.name as sender_name');
    $this->db->join('customer as tbl_receiver','tbl_receiver.id=transactions.receiver');
    $this->db->join('customer as tbl_sender','tbl_sender.id=transactions.sender');

Теперь я могу отображать таблицу вроде (id, имя-получателя, имя-отправителя ...) Мне нужна строка поиска, которая может искать имя получателя / отправителя

$this->db->like('receiver_name','Jackson');

Но там сказано, чтонет такого столбца, как имя_приемника.Как я могу позволить ему искать по имени получателя?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Вот мой код работает отлично.Вы можете попробовать это, я надеюсь, это сработает для вас.

public function index()
{
    /*$email=$this->post->input('search');*/ //OR

    $email='myEmail@test.com'; // Set email accroding you
    $this->db->select('*');
    $this->db->from('table1');
    $this->db->like('table1.email',$email);
    $this->db->join('table2', 'table1.email = table2.email');
    $query = $this->db->get();

    $assignedData=$query->result_array();

    var_dump($assignedData); // store data in array
}
0 голосов
/ 25 мая 2018

Вы пропустили ' в своем заявлении.Это должно быть

$this->db->like('receiver_name','Jackson');

Также вы можете написать как:

$this->db->select('*')->from('table')
       ->where("column LIKE '%$keyword%'")->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...