我有我的php / mysql SELECT代码,它不会将结果返回到我执行代码后的预期。 代码:[选择]
$sql="SELECT *FROM advert
WHERE ad_Type = '%{$service}%' AND
ad_Street_No like '%{$location}%' OR
ad_Street_Name like '%{$location}%' OR
ad_Suburb like '%{$location}%' OR
ad_Postcode like '%{$location}%' OR
ad_State like '%{$location}%'";
用户将在一个文本字段中使用街道名称,郊区,邮政编码和/或状态等参数搜索位置和可用服务类型,然后从下拉菜单中选择一种服务。例如:“从表'广告'中选择记录,其中服务类型='例如拖运,挖掘',位于例如卡迪夫新南威尔士州”。 “那样的事情。
我现在在我的数据库中有2条记录: 1.服务:Hauling,地点:新南威尔士州卡迪夫 2.服务:挖掘,地点:新南威尔士州卡迪夫
现在的问题是:
您在“卡迪夫”中搜索“牵引”服务,将返回2条记录(#1和#2)。 您在“卡迪夫”中搜索“挖掘”服务,将返回2条记录(#1和#2)。 您搜索“Cardiff NSW”中的任何一项服务,将返回0结果。
我不知道如何解决这个问题。请帮帮我们。先感谢您。 :( :( :(
祝你好运
答案 0 :(得分:3)
首先,您需要一些括号:
$sql="SELECT *FROM advert
WHERE ad_Type like '%{$service}%' AND
( ad_Street_No like '%{$location}%' OR
ad_Street_Name like '%{$location}%' OR
ad_Suburb like '%{$location}%' OR
ad_Postcode like '%{$location}%' OR
ad_State like '%{$location}%'" );
这将解决你的第一个案件。但是你还需要考虑你提供的确切内容:例如,如果你只提供一个城镇,那么你根本不想在你的查询中包含ad_Type。
答案 1 :(得分:0)
$sql = "SELECT * FROM advert
WHERE ad_Type like '%{$service}%'
AND (
ad_Street_No like '%{$location}%'
OR
ad_Street_Name like '%{$location}%'
OR
ad_Suburb like '%{$location}%'
OR
ad_Postcode like '%{$location}%'
OR
ad_State like '%{$location}%'
)";