Поиск по ключевым словам в нескольких таблицах? - PullRequest
0 голосов
/ 05 февраля 2019

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

Каждая таблица (свежая, соль) имеет 2 столбца (ID и ОПИСАНИЕ).

if(isset($_REQUEST["term"])){
// Prepare a select statement
$term = $_REQUEST['term'];

     $sql = "SELECT * FROM fresh  WHERE 
     description LIKE '%{$term}%' or 
     sku like '%{$term}%'
     union
     SELECT * FROM marine WHERE 
     description LIKE '%{$term}%' or 
     sku like '%{$term}%'";

        if($stmt = mysqli_prepare($link, $sql)){
        // Bind variables to the prepared statement as parameters
        mysqli_stmt_bind_param($stmt, "s", $param_term);

        // Set parameters
        $param_term = $_REQUEST["term"] . '%';

Поисковые термины могут быть любыми, например, «Neon Tetra», но в настоящее время поиск ищет эту строку как есть, и я хотел бы, чтобы она выполняла поиск как два + различных ключевых слова, разделенных пробелом, даже если термины обратны такимкак "Тетра Неон".

1 Ответ

0 голосов
/ 05 февраля 2019

идентификатор, связанный с обеими таблицами, использует that.im, просто приводя пример. Не знаю, какие таблицы имеют первичный или вторичный ключ.попробуйте это:

$this->db->join('fresh', 'fresh.id = salt.freshid')
                ->select('fresh.*,salt.id');

// вы можете заполнить все поля из таблицы соли с помощью salt.id, salt.name и т. д.

$where = '';
    if ($this->input->post('search')['value'] && $this->input->post('search')['value'] != '') {
        $where = "(fresh.sku LIKE '%" . $this->input->post('search')['value'] . "%' OR saly.sku LIKE '%" . $this->input->post('search')['value']. "%')";
    }
    if ($where != '') {
        $this->db->where($where);
    }
    $count = $this->db->get('salt')->num_rows();
    if ($this->input->post('length') != '-1') {
        $this->db->limit($this->input->post('length'), $this->input->post('start'));
    }
    $query = $this->db->get('salt')->result_array();
    return [$query, $count];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...