2016-12-06 46 views
1

我使用兩層鏈接在我的網頁選擇框來過濾數據......我有我的查詢第二選擇值的問題...比較逗號分隔值SQL字符串PHP

表:

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 

現在我想讓它選擇所有那些我們在第一個框中選擇貓一樣的價值一樣,如果我從第一選擇「割肉」,選擇它選擇「商城路」區域的查詢對於第二個箱子......並且如果我選擇了「宴會廳」,那麼它應該選擇「商場路」和「pakhowal路」等等。

我使用了一個查詢,這也但它不是爲我工作正常...

第二個選擇框查詢:

SELECT DISTINCT loc 
from table 
WHERE cat = '$_POST[cat]' AND loc IS NOT NULL 

它給出了「度假」和「酒店右輸出「只有貓......如果我選擇」農舍「或」宴會廳「,它不會取得」pakhowal道路「...

如何改變我的查詢來實現這個...?

+0

在一個側面說明,請不要使用PDO或查詢中使用它之前至少淨化你的輸入。直接插入$ _POST變量一直是不好的做法。 – Merv

回答

2

試試這個:

SELECT DISTINCT loc 
FROM [YourTable] 
WHERE INSTR(CONCAT(', ',cat,' ,'),CONCAT(', ','$_POST[cat]',' ,'))>0 AND loc IS NOT NULL 
+0

抱歉先生...沒有爲我工作... – Ashish

+0

@Ashish,你有任何錯誤?如果不是,你可以分享結果和預期結果。 –

+0

秒選擇是不是從表中取出任何值... – Ashish