我有一个名为user_join的表:
| join_to_id | join_by_id | approved |
join_to_id
表示用户向谁发送请求
join_by_id
表示发送请求的人
approved
表示接受或不接受请求,如果接受的价值为'是'否则价值将是'否'
现在我想显示那些被当前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";
答案 0 :(得分:1)
你觉得太复杂了。这应该这样做:
SELECT *
FROM user_join
WHERE '".$_GET['id']."' IN (join_to_id, join_by_id)
AND approved='Yes'
用户不会自己做朋友。
旁注:您应该使用预准备语句或至少转义$_GET
的输入以防止SQL注入。