php - jQueryUI 自动完成 - PHP 从多个表中选择值

标签 php mysql jquery-ui autocomplete

我正在使用 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/

相关文章:

php - 有没有办法初始化 PHPUnit 测试类模板?

mysql - 根据ID对应关系更新表

javascript - jQuery 用户界面 : My resize function is not working properly

javascript - 在 jQuery 对话框中对齐 iframe

php - 从 PHP 更新 MYSQL 语句

php - MySql 位列在 PHP 7.1 中返回奇怪的大数(在以前的版本中没有)

php 从数组中删除一项

mysql - alter table 在mysql中添加分区和子分区

MySQL CSV 导入权限被拒绝

jQuery UI 拖/放,捕捉到底部