PHP QUERY все еще показывает НЕ результаты с LIKE? - PullRequest
0 голосов
/ 09 мая 2011

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

$query="SELECT * FROM users 
WHERE uid!='1' 
AND userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%'";

Я хочу, чтобы он показывал результаты, которые он выводит сейчас, но не те, в которых код читает uid!='1'.

1 Ответ

3 голосов
/ 09 мая 2011

Я думаю, что ваша проблема здесь заключается в отсутствии скобок.

$query="SELECT * FROM users WHERE uid != '1' AND ( userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%' )";

Без скобок И будет только между первыми двумя условиями, все остальные не будут выброшены, так как они будут ИЛИ

Поскольку поле uid, вероятно, является полем INTEGER, вы также не должны иметь значение 1 в кавычках. Должно быть так:

$query="SELECT * FROM users WHERE uid != 1 AND ( userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%' )";
...