【发布时间】:2017-04-20 20:59:26
【问题描述】:
我在网页上使用双层链接选择框来过滤数据...我在查询第二个选择值时遇到问题...
表:
id name cat loc
1 ABC resort mall road
2 BCD banquet hall mall road
3 CDE farm house, banquet hall pakhowal road
4 DEF hotel ferozpur road
5 FEZ hotel fountain chowk
6 ZEX resort mall road
我有两个选择框,其中第一个用于 DISTINCT 猫值...这对我来说非常有用...
我正在使用的查询是:
select distinct cat from
(select trim(substring_index(substring_index (concat(cat,',,'),',',n),',',-1))
as cat from table t
cross join (select 1 as n union all select 2 union all select 3) r) t
where cat <> '' ORDER BY cat ASC
输出:
cat
banquet hall
farm house
hotel
resort
现在我想做一个查询,选择我们在第一个框中选择的所有具有相同 cat 值的区域,例如如果我从第一个选择中选择“resort”,它为第二个框选择了“mall road”...以防万一我选择了“宴会厅”,那么应该选择“mall road”和“pakhowal road”等等。
我也为此使用了查询,但它对我来说无法正常工作...
二次选择框查询:
SELECT DISTINCT loc
from table
WHERE cat = '$_POST[cat]' AND loc IS NOT NULL
它只为“度假村”和“酒店”猫提供正确的输出......如果我选择“农舍”或“宴会厅”,它不会获取“pakhowal 路”......
如何更改我的查询以实现此目的...?
【问题讨论】:
-
附带说明,在查询中使用之前,请务必使用 PDO 或至少清理您的输入。直接插入 $_POST 变量一直是不好的做法。
标签: php mysql sql concat chained-select