Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP mySQL搜索结果中排除值_Php_Mysql_Search_Syntax - Fatal编程技术网

从PHP mySQL搜索结果中排除值

从PHP mySQL搜索结果中排除值,php,mysql,search,syntax,Php,Mysql,Search,Syntax,我已经阅读了关于排除PHP和mySQL中的结果的内容,但我似乎无法找出我正在使用的搜索代码的正确语法 在我的所有其他结果表中,只要在“WHERE”语句后添加以下内容,就可以轻松地从数据库中提取信息,而不必使用搜索表单,排除userlevels: WHERE `userlevel` !='9' AND `userlevel` !='1' AND `userlevel` !='4' AND `userlevel` !='5' AND `userlevel` !='6' 现在,我使用的搜索代码使用“

我已经阅读了关于排除PHP和mySQL中的结果的内容,但我似乎无法找出我正在使用的搜索代码的正确语法

在我的所有其他结果表中,只要在“WHERE”语句后添加以下内容,就可以轻松地从数据库中提取信息,而不必使用搜索表单,排除userlevels:

WHERE `userlevel` !='9' AND `userlevel` !='1' AND `userlevel` !='4' AND `userlevel` !='5' AND `userlevel` !='6'
现在,我使用的搜索代码使用“或”而不是“和”和“像”。看起来是这样的:

//Set the MySQL query
if ($search == NULL or $search == '%'){
} else {
for ($i=0; $i<count($keywords); $i++) {
$query = "SELECT * FROM sound_users " .
"WHERE genre LIKE '%".$keywords[$i]."%'".
" OR genre2 LIKE '%".$keywords[$i]."%'" .
" OR genre3 LIKE '%".$keywords[$i]."%'" .
" OR bandname LIKE '%".$keywords[$i]."%'" .
" ORDER BY genre";

}
这只会对搜索结果造成一些不好的影响,结果是两个不同的表同时包含了这两个用户级别,两个表叠在一起。所以我将“OR”改为“AND”-就像在我的其他代码中一样,这也不起作用

在这一点上,我试图添加我发现的“不在”和“不存在”示例,但无论我怎么做,似乎总是返回san错误,告诉我检查语法


我想知道是否可以使用“或”从搜索结果中排除特定值,或者排除仅适用于基本代码,只需从数据库中调用值即可显示,而不必使用搜索表单。

括号是您的朋友

WHERE 
  (X LIKE '%X%' OR Y LIKE '%Y%' OR Z LIKE '%Z%')
  AND
  (X NOT LIKE '%XX%' OR Y<>'abc' OR LENGTH(Z)<5 OR A<>7)
在哪里
(X类“%X%”或Y类“%Y%”或Z类“%Z%”
和

(X不像“%XX%”或“Y'abc”或长度(Z)太感谢了!我真的很难做到这一点!我在一些示例中看到了一些括号之类的东西,但一定是把它们放在了所有错误的位置。在您的帮助下,它现在开始工作了!非常感谢!我一直在学习。
WHERE 
  (X LIKE '%X%' OR Y LIKE '%Y%' OR Z LIKE '%Z%')
  AND
  (X NOT LIKE '%XX%' OR Y<>'abc' OR LENGTH(Z)<5 OR A<>7)