表:tblBuilding
buildingid ............. buildingname ....... buildinglocation
1 .................................诊所................................. ........爱丽丝路
2 ..........................................冬季购物中心............白沙罗
3 ....................系... ....北京路
4 ......... ...馆


表:tblperson
personid ....... personname ..................... personno ............. personbuilding
1 .................................. Andrew Clarkson博士...... 0312883232 .......诊所
2 ................................................................................................ 0825112315 ....冬季购物中心
3 .....................艾米·达莉安娜(Emmy Dahliana)夫人..... 0112357125 .......学院
4 ..............贾斯汀·安德鲁教授............ 0524128866 .......学院
5 .............. Sanila博士....................... 0225113070 ... .....诊所

如果输入关键字Andrew,我的预期结果是
编号:1
人名:Andrew Clarkson博士
人员编号:0312883232
人员建设:诊所
建筑物位置:爱丽丝路

如果输入关键字“ Star Mall”,则预期结果是
buildingid:4
建筑物名称:星光广场
建筑位置:馆

我的代码:

if (isset($_GET["FirstName"]))
{
    $FirstName = $_GET['FirstName'];
}

$query= "(SELECT * FROM tblBuilding where buildingname like '%".$FirstName."%' OR buildinglocation '%".$FirstName."%') UNION (SELECT * FROM tblperson where personname like '%".$FirstName."%' OR personno '%".$FirstName."%' or personbuilding (SELECT * FROM tblBuilding where buildingname like '%".$FirstName."%' OR buildinglocation '%".$FirstName."%')) "

mysql_query($query);


该查询返回空结果。错误显示如下。

   Warning: mysql_num_rows() expects parameter 1 to be resource,
   boolean given in C:\xampp\htdocs\dbinfo\getDetails.php on line 68 {"success":0,"message":"Keyword(s) not found"}

最佳答案

UNION运算符使用相同的列名。您应该对两个表的列名使用相同的名称作为别名。它应该工作。

关于php - PHP搜索多个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29717213/

10-09 22:01