$raw_results = mysql_query("SELECT * FROM system_passwords
WHERE hide != 1 AND (`id` LIKE '%".$query."%')
OR (`system_name` LIKE '%".$query."%')
OR (`database_name` LIKE '%".$query."%')
OR (`username` LIKE '%".$query."%')
OR (`password` LIKE '%".$query."%')
OR (`notes` LIKE '%".$query."%')
OR (`additional_info` LIKE '%".$query."%')") or die(mysql_error());
我如何或在哪里添加hide != 1到这个?
你必须把or
组在一起。如您的查询运行为
WHERE hide != 1 AND (`id` LIKE '%".$query."%')
或
(system_name LIKE '%".$query."%')
或等等。
这应该按照您的期望对值进行分组。
SELECT * FROM system_passwords
WHERE (
(`id` LIKE '%".$query."%') OR
(`system_name` LIKE '%".$query."%') OR
(`database_name` LIKE '%".$query."%') OR
(`username` LIKE '%".$query."%') OR
(`password` LIKE '%".$query."%') OR
(`notes` LIKE '%".$query."%') OR
(`additional_info` LIKE '%".$query."%')
) and hide != 1
您还应该切换到PDO
或mysqli
,以便您可以使用预处理语句。这可能会导致SQL注入;不知道$query
不能肯定地说…
附加信息:Mysql或/和优先级?
它在正确的位置,但这在逻辑上不那么模棱两可WHERE hide != 1 AND ([a] OR [b] OR [c])