Итак, если $Interest
равно "Any"
, тогда вообще не должно быть фильтра? Вы можете поместить эту логику в запросе. Например, рассмотрим что-то вроде этого:
SELECT *
FROM User
WHERE
(Interest1 = '$Interest' OR Interest2 = '$Interest' OR Interest3 = '$Interest')
OR '$Interest' = 'Any'
Согласно этой логике, последняя OR
будет соответствовать каждой записи, если переменная имеет строку "Any"
. Таким образом, вы в основном говорите: «Если запись соответствует вводу, ИЛИ, если ввод Any
».
Кроме того, , и это важно , ваш код широко открыт до SQL-инъекция . Это означает, что вы слепо выполняете любой код, который ваши пользователи посылают вам . Этот ответ демонстрирует логика решения, , но есть еще что вам нужно сделать . Начните с изучения того, что SQL-инъекция здесь , и краткой информации о том, как ее существенно предотвратить здесь .