我正在使用 jQueryUI 自动完成来搜索 mySQL 数据库。我将其用于数据库中的单个列,但我希望自动完成功能同时搜索多个列。
例如表:
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>
<小时/>
我对此很陌生,所以请不要拒绝我,尽管这对我来说可能是一个非常简单的错误:)
我花了很多时间(几个小时)试图解决这个问题,但没有找到任何关于堆栈溢出(或其他)的示例代码来帮助我完成这个特定的任务。
非常感谢,期待
最佳答案
好的,所以我又多尝试了一下,正如我所想,这是我的 mysqli_query 的错误。
我必须将其更改为这样才能工作:
SELECT company FROM companies WHERE company LIKE '%$q%' UNION SELECT sector FROM sectors WHERE sector LIKE '%$q%'
对于有经验的人来说,这很可能是一个非常简单的问题,但感谢您的帮助 Tularis - 测试 JSON 返回是我做到这一点的原因
关于php - jQueryUI 自动完成 - PHP 从多个表中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22052808/