因此,我有一个名为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;
ive尝试了类似的方法,但结果仍然不准确
$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>";
}
答案 0 :(得分:0)
您必须创建一个名称为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']);
}