因此,我有一个名为follow_sys
的表,其中包含列id
、follower
和following
,我想要显示我关注的人,但不要将其作为待处理的好友请求返回。我尝试了自连接,但它不起作用
$sqlFollowing = "SELECT * from follows_syds t1, follows_syds t2
where
t1.follower = ?
and
t1.following != ?
and
t2.follower != ?
AND
t2.following != ?";
$Following = $conn -> prepare($sqlFollowing);
$Following -> bind_param('ssss',$metUser,$metUser,$metUser,$metUser);
$Following -> execute();
$FollowingGET = $Following -> get_result();
$FollowingRows = $FollowingGET -> num_rows;
我试过这样的方法,但结果仍然不准确
$sqlFollowing = "SELECT * from follows_syds t1
INNER join follows_syds t2 on
t1.follower = t2.following
where
t2.follower = ?
and
t1.following = ?
group by t2.id";
$Following = $conn -> prepare($sqlFollowing);
$Following -> bind_param('ss',$getUser,$getUser);
$Following -> execute();
$FollowingGET = $Following -> get_result();
$FollowingRows = $FollowingGET -> num_rows;
while($b = $FollowingGET -> fetch_assoc()){
$ve = $b['following'];
}
$sqlowing = "SELECT * from follows_syds t1
INNER join follows_syds t2 on
t1.follower = t1.follower
where
t2.follower = ?
and
t2.following != ?
AND
t1.follower != ?
and
t1.following != ?
group by t2.id";
$owing = $conn -> prepare($sqlowing);
$owing -> bind_param('ssss',$getUser,$ve,$ve,$getUser);
$owing -> execute();
$owingGET = $owing -> get_result();
$owingRows = $owingGET -> num_rows;
while($a = $owingGET -> fetch_assoc()){
print_r($a );
echo "</br>";
}
发布于 2018-07-02 02:27:07
您必须使用follower_following
名称创建表
CREATE TABLE `follower_following` (
`id` int(11) NOT NULL,
`follower_id` int(11) NOT NULL,
`following_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `follower_following`
ADD PRIMARY KEY (`id`);
ALTER TABLE `follower_following`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
追随者的用户Id必须保存在此表的follower_id
列中。并且后面的用户的id必须保存在该表的following_id
列中。如果您希望获得id =1的任何用户的关注者,则必须运行此查询。
function get_username($id){
$sql = "SELECT * FROM user where id = $id";
$result = $conn->query($sql);
foreace($result as $row){
return $row['username'];
}
}
$sql = "SELECT * FROM follower_following where following_id = 1";
$result = $conn->query($sql);
foreace($result2 as $row2){
echo get_username($row2['follower_id']);
}
https://stackoverflow.com/questions/51124680
复制相似问题