Как искать в объединенной таблице?

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


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');

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
43
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В заявлении "Нравится" отсутствует '. Так должно быть

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

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

$this->db->select('*')->from('table')
       ->where("column LIKE '%$keyword%'")->get();

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

XavierChoo 25.05.2018 05:53

Но это все равно не сработает, потому что это объединенная таблица, и я ищу, используя ключевое слово, которое я определил в объединенной таблице, а не фактический столбец. Еще какое-то решение. Спасибо.

XavierChoo 25.05.2018 05:55

Можно заменить $this->db->like('receiver_name','Jackson'); на $this->db->where('receiver_name LIKE '%Jackson%');

Sambhaji Katrajkar 25.05.2018 05:58

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

XavierChoo 25.05.2018 06:19

Попробуйте проверить tbl_receiver.name в лайке вместо receiver_name

Sambhaji Katrajkar 25.05.2018 06:21

Спасибо чувак! Много ! ХАХААХА работает !!!! Хорошего дня и спасибо всем за ваши усилия.

XavierChoo 25.05.2018 06:29
Ответ принят как подходящий

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
}

Другие вопросы по теме