如何在php中的自动完成文本框中运行两个或更多查询?

时间:2018-05-16 11:27:30

标签: php mysqli autocomplete

代码:

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

当我在上面的代码中使用单个查询时它使用自动完成建议框它完美地工作并显示结果但现在我想运行两个查询以在单个自动完成框中获取不同的数据但是当我运行此文件时它显示我&#34; null&#34;输出。那么,我如何在单个框中修复并获取两个不同的表数据?请帮助我。

谢谢

2 个答案:

答案 0 :(得分:0)

试试这个,

$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";

答案 1 :(得分:0)

以下代码已修改为从两个查询中获得结果。

试试这个:

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