我有一个能够正确找到所有内容的搜索,但我现在唯一的问题是它还会显示我不想提取的结果。查询代码如下:
$query="SELECT * FROM users
WHERE uid!='1'
AND userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%'";
我希望它能够显示它现在提取的结果,而不是代码读取uid!='1'
的结果。
答案 0 :(得分:3)
我认为你的问题是缺少括号。
$query="SELECT * FROM users WHERE uid != '1' AND ( userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%' )";
没有括号,AND只会在前两个条件之间,所有其他条件都不会被踢出,因为它们是OR'd
由于uid字段可能是INTEGER字段,因此您也不应该在引号中使用值1。它应该是这样的:
$query="SELECT * FROM users WHERE uid != 1 AND ( userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%' )";