表: tblBuilding
buildingid.建筑物名称.建筑选址
1.................Clinic...............................艾丽斯道
2..冬季购物中心.达曼萨拉
3..教员.北京路
4..星光商场.巴甫里安
表: tblperson
personid.......personname..................personbuilding .
....................Dr安德鲁·克拉克森.0312883232.门诊部
2 ....................Mr Antoine.0825112315.冬季购物中心
....................Mrs Emmy Dahliana.0112357125.教职员工
4.贾斯汀·安德鲁教授.0524128866.教职员工
5.Sanila博士.0225113070.门诊部
如果我输入关键字为Andrew,我的预期结果是
id:1
个人名称:安德鲁·克拉克森博士
人物: 0312883232
人格化:诊所
楼宇位置:艾丽斯道
如果我输入关键字为Star Mall,我的预期结果是
建筑: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"}发布于 2015-04-18 12:24:06
UNION运算符使用相同的列名。您应该使用相同的名称来别名两个表的列名。应该管用的。
发布于 2015-04-18 16:30:54
我想现在它已经修好了。注意,UNION中的每个SELECT语句必须有相同的列数。这些列还必须具有类似的数据类型。此外,每个SELECT语句中的列必须按照相同的顺序排列。
if (isset($_GET["FirstName"]))
{
$FirstName = $_GET['FirstName'];
}
$query= "(SELECT * FROM tblBuilding where buildingname like '%".$FirstName."%' OR buildinglocation LIKE '%".$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);https://stackoverflow.com/questions/29717213
复制相似问题