2016-12-06 3 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 

у меня есть два полех выбор, в котором первый один для различных значений кота ... который отлично работает для меня ...

запросов я использую это:

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

second select не извлекает никакого значения из таблицы ... – Ashish

Смежные вопросы