我有一个名为user_join:的表
| join_to_id | join_by_id | approved |
join_to_id
表示向哪个用户发送请求
join_by_id
表示谁在发送请求
approved
表示是否接受请求,如果接受值为"是",则表示为"否"
现在,我想显示那些由当前id用户批准或批准当前id用户的用户的名称。
这是我的代码:
$query = "SELECT * FROM user_join where (join_to_id = '".$_GET['id']."' and approved = 'Yes' and join_by_id != '".$_GET['id']."' )
or (join_by_id = '".$_GET['id']."' and approved = 'Yes' and join_to_id != '".$_GET['id']."') ORDER BY id DESC";
你想的太复杂了。这应该做到:
SELECT *
FROM user_join
WHERE '".$_GET['id']."' IN (join_to_id, join_by_id)
AND approved='Yes'
用户不会成为自己的好友。
附带说明:您应该使用准备好的语句,或者至少转义$_GET
的输入,以防止SQL注入