Мой пример таблицы:
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');
Но он сказал, что нет такого столбца, как имя_приемника. Как разрешить поиск по имени получателя?






В заявлении "Нравится" отсутствует '. Так должно быть
$this->db->like('receiver_name','Jackson');
Также вы можете написать Like как:
$this->db->select('*')->from('table')
->where("column LIKE '%$keyword%'")->get();
Но это все равно не сработает, потому что это объединенная таблица, и я ищу, используя ключевое слово, которое я определил в объединенной таблице, а не фактический столбец. Еще какое-то решение. Спасибо.
Можно заменить $this->db->like('receiver_name','Jackson'); на $this->db->where('receiver_name LIKE '%Jackson%');
Он по-прежнему остается неизвестным столбцом. Я использую переменную, определенную в объединенной таблице. Он не может распознать его, так как его нет в столбце. Как мне позволить ему распознать.
Попробуйте проверить tbl_receiver.name в лайке вместо receiver_name
Спасибо чувак! Много ! ХАХААХА работает !!!! Хорошего дня и спасибо всем за ваши усилия.
Here is my code working perfectly. you can try this stuff i hope this will work for you.
public function index()
{
/*$email=$this->post->input('search');*/ //OR
$email='[email protected]'; // 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
}
Ой, извините, я набрал его вместо того, чтобы скопировать. В реальном коде это правильно. Отредактирую здесь.