我需要对 2 个同步表进行搜索,我认为这个连接可以工作,但它给了我一个不正确的语法错误。
$return_arr = array();
$query = mysql_query("SELECT * FROM clients WHERE lastname LIKE '$q%' AND agencyid = '$agencyid'
UNION
SELECT * FROM busclients WHERE busname LIKE '$q%' AND agencyid = '$agencyid'")or die(mysql_error());
if($query) {
while ($result = mysql_fetch_array($query)) {
if(isset($result['busname'])){
$description['id'] = $result['ID'];
$description['value'] = $result['busname'] ;
array_push($return_arr,$description);
}
else
{
$description['id'] = $result['ID'];
$description['value'] = $result['lastname'] . ", " . $result['firstname'] ;
array_push($return_arr,$description);
}
}
}
echo json_encode($return_arr);
使用下面建议的修复和完整语法进行编辑
这是来自自动完成搜索框的查询。因此,当有人输入客户或业务客户名称时,它会使用此查询来搜索数据库,然后使用 jquery 显示结果。
下面的修复有效,但是当我在企业客户端上进行搜索时,它返回 []。客户搜索效果很好。
您可以使用两个单独的查询并将它们连接在一起,如下所示:
SELECT * FROM clients
WHERE lastname LIKE "%agencyid%"
UNION
SELECT * FROM busclients
WHERE busname LIKE "%$agencyid%";
你的sql语法应该是这样的:
SELECT * FROM clients c
inner join
busclients b
on c.agencyid=b.idbus
WHERE (c.lastname and b.busname LIKE '$q%') AND c.agencyid = '$agencyid'
为了完成这个循环,请确保您阅读了这篇文章,了解如何在 mysql 中连接表