我有几个有项目的用户。我需要每个用户都能够搜索他们的项目,而不是看到其他人的项目。此查询仍允许执行者查看dbase中的每个项目。请帮忙!
$ findit是脚本中早期的变量,是用户正在寻找的变量。 $ username在登录后通过会话cookie设置。
$result = mysql_query( "SELECT * FROM prices WHERE
itemnum LIKE '%$findit%' ||
itemdesc LIKE '%$findit%' AND username = '$username' ORDER BY price");
答案 0 :(得分:2)
您应该能够对OR进行分组:
SELECT *
FROM prices
WHERE (itemnum LIKE '%$findit%'
OR itemdesc LIKE '%$findit%')
AND username = '$username'
ORDER BY price
这将使OR作为单个条件,并且用户名匹配为另一个,因此需要匹配用户名。
答案 1 :(得分:0)
$result = mysql_query( "SELECT * FROM prices WHERE
(itemnum LIKE '%$findit%' OR itemdesc LIKE '%$findit%')
AND username = '$username' ORDER BY price");
注意括号。如果它们不存在,则会匹配itemnum LIKE ...
或 itemdesc LIKE ... and username = ...
答案 2 :(得分:0)
$result = mysql_query( "SELECT * FROM prices WHERE
(itemnum LIKE '%$findit%' ||
itemdesc LIKE '%$findit%') AND username = '$username' ORDER BY price");
缺少括号。 AND
的{{3}}高于OR
。