下面是我的查询,它返回会话用户的朋友。
$new_friends = $db->query("
SELECT user.id, user.name_surname
FROM user
JOIN friendship ON user.id = friendship.sender_id or user.id = friendship.receiver_id
WHERE (friendship.receiver_id =" . $_SESSION["SES_USER_ID"] . " OR friendship.sender_id =" . $_SESSION["SES_USER_ID"] . ")
AND user.id != " . $_SESSION["SES_USER_ID"] . "");
$new_friends->setFetchMode(PDO::FETCH_ASSOC);
$new_friends_data = $new_friends->fetchAll();
它运作良好,没有任何问题。现在我想用新属性改进我的网站,所以我想在我的网站上添加“NEW PEOPLE”部分。被提起的人不得讨论用户的朋友和他/她自己。
我尝试使用下面的代码“你可能知道”部分。但它又回来了会话用户的朋友。
$new_friends2 = $db->query("
SELECT user.id, user.name_surname
FROM user
JOIN friendship ON user.id = friendship.sender_id or user.id = friendship.receiver_id
WHERE (friendship.receiver_id !=" . $_SESSION["SES_USER_ID"] . " OR friendship.sender_id !=" . $_SESSION["SES_USER_ID"] . ")
AND user.id != " . $_SESSION["SES_USER_ID"] . "");
$new_friends2->setFetchMode(PDO::FETCH_ASSOC);
$new_friends_data2 = $new_friends->fetchAll();
//look carefully I change some equations from = to !=
我该如何解决?
基本上我想要回复不是会话用户朋友的人。
答案 0 :(得分:0)
WHERE (friendship.receiver_id !=" . $_SESSION["SES_USER_ID"] . " OR friendship.sender_id !=" . $_SESSION["SES_USER_ID"] . ")
或者这里允许其中一列让SES_USER_ID将其更改为AND
答案 1 :(得分:0)
你的问题不够明确!
但是看一下这个问题,你应该用or
替换and
!!