код:
<?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);
?>
Я использую окно предложения автозаполнения, когда я использую один запрос в приведенном выше коде, он отлично работает и показывает мне результат, но теперь я хочу запустить два запроса, чтобы получить разные данные в одном поле автозаполнения, но когда я запускаю этот файл, он показывает мне "null " выход. Итак, как мне исправить и получить две разные данные таблицы в одном поле? Пожалуйста, помогите мне.
Спасибо
Возможная проблема. У вас нет ; между двумя запросами. Внутри строки то есть. то есть ORDER BY company_name ASC;";
Я стараюсь, как вы говорите, но такая же проблема @RiggsFolly
Но мы все еще не знаем, в чем проблема. Нам нужны сообщения об ошибках
Вам также нужно прочтите руководство по мультизапросу, вы фактически не переходите от первого результата ко второму. Есть некоторые другие функции, которые необходимо вызвать для просмотра нескольких результатов.






Попробуй это,
$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";
Зачем ОП попробуй это? У Хорошие ответы всегда будет объяснение того, что было сделано и почему это было сделано таким образом, не только для OP, но и для будущих посетителей SO, которые могут найти этот вопрос и прочитать ваш ответ.
Вы точно знаете, что company_name и key_skills имеют один и тот же тип данных?
@RiggsFolly - Я согласен, что хорошие ответы всегда имеют объяснение, но это прямой вопрос. Можем ли мы выполнить 2 запроса одновременно? Да мы можем. Вот что я дал в ответ. По поводу типов. Почему это имеет значение ? Разве мы не можем проверить тип в цикле while, а затем присвоить значения соответствующим образом?
UNIONS должны возвращать один и тот же тип данных для каждого столбца в обоих запросах.
Приведенный ниже код был изменен для получения результатов по двум запросам.
Попробуй это:
<?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);
?>
Спасибо, дружище @Karlo Kokkak
Что происходит? Вы получаете ошибки? Вы смотрели журнал ошибок PHP?