Как запустить два или более запроса в текстовом поле автозаполнения в PHP? - PullRequest
0 голосов
/ 16 мая 2018

код:

<?php
    session_start;
    include('config.php'); 
    $student_id = $_SESSION['student_id'];

    $searchTerm = $_GET['term'];
    $query = "SELECT company_name FROM company WHERE company LIKE '%".$searchTerm."%' ORDER BY company_name ASC";
    $query .= "SELECT key_skills FROM skill_master WHERE key_skills LIKE '%".$searchTerm."%' ORDER BY key_skills ASC";
    $result = mysqli_multi_query($con,$query);
    while($row = mysqli_fetch_assoc($result)) 
    {
        $data[] = $row['company_name'];
        $data[] = $row['key_skills'];
    }
    echo json_encode($data);
?>

Я использую окно с предложением автозаполнения, когда я использую один запрос в приведенном выше коде, он отлично работает и показывает результат, но теперь я хочу выполнить два запроса, чтобы получить разные данные в одном окне автозаполнения, но когда я запускаю этот файл, он показывает мне "нулевой" вывод. Итак, как я могу исправить и получить две разные таблицы данных в одном окне? Пожалуйста, помогите мне.

Спасибо

Ответы [ 2 ]

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

Приведенный ниже код был изменен для получения результатов двух запросов.

Попробуйте это:

<?php
    session_start();
    include('config.php'); 
    $student_id = $_SESSION['student_id'];
    $data = array();

    $searchTerm = $_GET['term'];
    $query = "SELECT company_name FROM company WHERE company LIKE '%".$searchTerm."%' ORDER BY company_name ASC;";
    $query .= "SELECT key_skills FROM skill_master WHERE key_skills LIKE '%".$searchTerm."%' ORDER BY key_skills ASC;";

    mysqli_multi_query($con,$query);
    $result = mysqli_store_result($con);

    while($row = mysqli_fetch_assoc($result)) 
    {
        $data[] = $row['company_name'];
    }

    mysqli_free_result($result);
    mysqli_next_result($con);

    $result = mysqli_store_result($con);

    while ($row = mysqli_fetch_assoc($result)) {
        $data[] = $row['key_skills'];
    }       

    mysqli_free_result($result);
    mysqli_close($con);
    echo json_encode($data);
?>
0 голосов
/ 16 мая 2018

Попробуйте,

$query = "SELECT company_name FROM company WHERE company LIKE '%".$searchTerm."%' ORDER BY company_name ASC 
          UNION 
          SELECT key_skills FROM skill_master WHERE key_skills LIKE '%".$searchTerm."%' ORDER BY key_skills ASC";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...