我正在使用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>
我对此很陌生,所以请不要让我失望,尽管这可能是我的一个非常简单的错误:)
我花了很多时间(小时)试图解决这个问题,并没有在堆栈溢出(或其他)上找到任何帮助我完成此特定任务的示例代码。
非常感谢期待
答案 0 :(得分:0)
好的,所以我一直在玩这个,这是我想到的mysqli_query的错误。
我不得不改变它来工作:
SELECT company FROM companies WHERE company LIKE '%$q%' UNION SELECT sector FROM sectors WHERE sector LIKE '%$q%'
对于那些经验丰富的人来说,很可能是一个非常简单的人,但感谢你的帮助Tularis - 测试JSON的回报是什么导致我这个