我有两个表,'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/