关注取消关注系统
Follow Unfollow system
我在这个网站上工作,就像关注 Twitter 一样关注和取消关注用户。
下面的查询有效,然后我注意到它没有显示我不关注的用户,因为该用户已被某人关注或正在关注某人
$stmt = $mysqli->prepare("SELECT * FROM town_users LEFT JOIN user_follow_list ON user_follow_list.following_id = town_users.user_id WHERE town_users.user_id != ? AND user_follow_list.follow_id IS NULL ORDER BY RAND() LIMIT 5");
$stmt->bind_param("i", $user_id);
下面是我的table结构
town_users
user_id username
| 1 | ben
| 2 | betty
| 3 | tom
| 4 | john
user_follow_list
follow_id follower_id following_id
| 1 | 1 | 2
| 2 | 1 | 3
在user_follow_listBen
之后是betty
和tom
。现在 john
关注一个用户让我们说 tom
,
follow_id follower_id following_id
| 3 | 4 | 3
现在的问题是 john
没有出现在要关注的 ben
用户列表中。
这是为了向我未关注的用户显示,以便我可以关注他们。
SELECT * FROM town_users
LEFT JOIN user_follow_list ON user_follow_list.follower_id = town_users.user_id
WHERE town_users.user_id NOT IN (SELECT following_id FROM user_follow_list WHERE
follower_id = 1) AND town_users.user_id != 1
GROUP BY town_users.user_id ORDER BY RAND() LIMIT 5
此查询将获取所有未被 ($user_id = 1
) 关注的用户。
$stmt = $mysqli->prepare("SELECT * FROM town_users
LEFT JOIN user_follow_list ON user_follow_list.follower_id = town_users.user_id
WHERE town_users.user_id NOT IN (SELECT following_id FROM user_follow_list WHERE follower_id = ?)
AND town_users.user_id != ?
GROUP BY town_users.user_id ORDER BY RAND() LIMIT 5");
$stmt->bind_param("ii", $user_id, $user_id);
这里是 SQL Fiddle: http://sqlfiddle.com/#!9/96d55/23/0
我在这个网站上工作,就像关注 Twitter 一样关注和取消关注用户。 下面的查询有效,然后我注意到它没有显示我不关注的用户,因为该用户已被某人关注或正在关注某人
$stmt = $mysqli->prepare("SELECT * FROM town_users LEFT JOIN user_follow_list ON user_follow_list.following_id = town_users.user_id WHERE town_users.user_id != ? AND user_follow_list.follow_id IS NULL ORDER BY RAND() LIMIT 5");
$stmt->bind_param("i", $user_id);
下面是我的table结构
town_users
user_id username
| 1 | ben
| 2 | betty
| 3 | tom
| 4 | john
user_follow_list
follow_id follower_id following_id
| 1 | 1 | 2
| 2 | 1 | 3
在user_follow_listBen
之后是betty
和tom
。现在 john
关注一个用户让我们说 tom
,
follow_id follower_id following_id
| 3 | 4 | 3
现在的问题是 john
没有出现在要关注的 ben
用户列表中。
这是为了向我未关注的用户显示,以便我可以关注他们。
SELECT * FROM town_users
LEFT JOIN user_follow_list ON user_follow_list.follower_id = town_users.user_id
WHERE town_users.user_id NOT IN (SELECT following_id FROM user_follow_list WHERE
follower_id = 1) AND town_users.user_id != 1
GROUP BY town_users.user_id ORDER BY RAND() LIMIT 5
此查询将获取所有未被 ($user_id = 1
) 关注的用户。
$stmt = $mysqli->prepare("SELECT * FROM town_users
LEFT JOIN user_follow_list ON user_follow_list.follower_id = town_users.user_id
WHERE town_users.user_id NOT IN (SELECT following_id FROM user_follow_list WHERE follower_id = ?)
AND town_users.user_id != ?
GROUP BY town_users.user_id ORDER BY RAND() LIMIT 5");
$stmt->bind_param("ii", $user_id, $user_id);
这里是 SQL Fiddle: http://sqlfiddle.com/#!9/96d55/23/0