php - 如何使用自动完成搜索两个表

标签 php jquery mysql database

我有两个表,'states' 和 'cities',我希望自动完成功能能够从 state 和 city 字段中搜索两个表中的任何结果。我还不能做到这一点,但我已经能够搜索一个表,但似乎无法弄清楚如何搜索两个表。

表格:

States
======
id
state

Cities
======
id
city

这就是我循环遍历结果的方式...

while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {

    $row_array['id'] = $row['stateid'];
    $row_array['value'] = $row['state'];

    array_push($return_arr,$row_array);
}

最佳答案

当你连接到 MySQL 时,不要在单个表上使用查询,而是使用这个

select 'state' as type, id, state
from states
union all
select 'city', id, city
from cities

名为“州”的结果列包含州和城市名称。您可能还想使用“类型”列来确定所选名称(来自数组)是州还是城市。

围绕它做一个包装器可能更容易,这样你就可以过滤组合结果:

SELECT type, id, state
FROM
(
    select 'state' as type, id, state
    from states
    union all
    select 'city', id, city
    from cities
) X
WHERE ...  # you can put a where clause here

关于php - 如何使用自动完成搜索两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5347072/

相关文章:

php - PHP自动更新数据库数据的方法

PHP preg_replace 删除方括号之间的所有点字符

javascript - 将函数内部原型(prototype)分配给函数原型(prototype)对象

php - 如何从php文件中的FormData获取数据

javascript - 无法让 SimpleHTTPRequestHandler 响应 AJAX

php - 关于连接两个mysql表的问题

php - Laravel 如何使用查询生成器从 created_at(时间戳)转换为日期?

mysql - 日期查询 MySQL

mysql - HAVING COUNT 接收其他 COUNT 值

mysql - 在 mysql information_schema 中找不到表详细信息