我正在为基本社交网络创建朋友系统。我创建了以下功能来显示用户的所有朋友。 图例:sid =发送者ID; rid = receiver id;
public function friendsList()
{
$id = $_SESSION['user'];
$status = 1;
$sql = $this->_db->prepare("SELECT * FROM requests WHERE (sid = :k OR rid = :m) AND status = :n");
$sql->bindValue(':k', $id);
$sql->bindValue(':m',$id);
$sql->bindValue(':n', $status);
$sql->execute();
while($row = $sql->fetchAll(PDO::FETCH_ASSOC)){
$rsize = count($row);
$a = $_SESSION['user'];
$rel = new User();
$sel = new User();
for($i=0; $i<$rsize; $i++)
{
if($a === $row[$i]['sid']){
$friendid = $row[$i]['rid'];
$rel = $rel->getUser($friendid);
return $rel;
}
if($a === $row[$i]['rid']){
$friendid = $row[$i]['sid'];
$sel = $sel->getUser($friendid);
return $sel;
}
}
}
}
getUser()函数运行正常。它所做的就是返回相应朋友ID的用户名。
我的问题是:当我执行代码时,当前用户的id只被分配给两个if循环中的任何一个,它只返回来自单个实例的朋友,例如,当前用户是发件人,反之亦然。
那么,我如何改变它,以便当前用户同时是发送者和接收者时我可以回复朋友? 请帮助!!