$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?
答案 0 :(得分:2)
您必须将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
无法肯定说什么..
答案 1 :(得分:1)
它位于正确的位置,但逻辑上不那么模糊
WHERE hide != 1 AND ([a] OR [b] OR [c])