【发布时间】:2014-02-28 13:42:56
【问题描述】:
我需要对 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 显示结果。
以下修复有效,但是当我在商业客户端上进行搜索时,它返回 []。客户端搜索工作正常。
【问题讨论】:
-
这是错误的:WHERE lastname, busname
-
你能提供样本数据和想要的结果吗?您的非工作查询并未传达您真正想要做的事情。
-
在问题中描述您的
WHERE子句应该做什么。 (正如@RobertRozas 所说,您的 WHERE 子句是问题所在) -
重新定义您的问题...同时解释下哪个表记录了 lastname、busname 和 Agencyid