jQueryUI自动完成 - PHP SELECT值来自多个表

时间:2014-02-26 20:43:36

标签: php mysql jquery-ui autocomplete

我正在使用jQueryUI自动完成来搜索mySQL数据库。我对数据库中的单个列有效,但我希望自动完成功能同时搜索多个列。

e.g。表:

Companies                           Sectors
----------                          ---------
company_id                          sector_id
company                             sector

所以我希望自动完成功能能够搜索Companies.company和Sectors.sector,并从两个表中提供自动填充建议。

这是我到目前为止使用的php,它不会向自动完成返回错误或数据:

<?php
$con=mysqli_connect(database_details);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$q = strtolower($_GET["term"]);


$return = array();


$query = mysqli_query($con, "SELECT company FROM companies UNION SELECT sector FROM sectors AS data WHERE data LIKE '%$q%'");

if($query === FALSE) {
die(mysql_error()); 
}

while ($row = mysqli_fetch_array($query)) {
array_push($return,array('label'=>$row['data'],
                        'value'=>$row['data']
));
}

echo(json_encode($return));

mysqli_close($con);

?>

JS非常简单:

<script>
$(document).ready(function search() {
$( "#search" ).autocomplete({
source: "php/search.php"
});
});     
</script>

我对此很陌生,所以请不要让我失望,尽管这可能是我的一个非常简单的错误:)

我花了很多时间(小时)试图解决这个问题,并没有在堆栈溢出(或其他)上找到任何帮助我完成此特定任务的示例代码。

非常感谢期待

1 个答案:

答案 0 :(得分:0)

好的,所以我一直在玩这个,这是我想到的mysqli_query的错误。

我不得不改变它来工作:

SELECT company FROM companies WHERE company LIKE '%$q%' UNION SELECT sector FROM sectors WHERE sector LIKE '%$q%'

对于那些经验丰富的人来说,很可能是一个非常简单的人,但感谢你的帮助Tularis - 测试JSON的回报是什么导致我这个