Я создаю систему друзей для базовой социальной сети. Я создал функцию ниже, чтобы отобразить всех друзей пользователя.
Легенда: sid = идентификатор отправителя; рид = идентификатор получателя;
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 () работает нормально. Все, что она делает — возвращает имя пользователя соответствующего друга.
Моя проблема заключается в следующем: когда я выполняю код, идентификатор текущего пользователя присваивается только одному из двух циклов if, который возвращает только друзей из одного экземпляра, например, где текущий пользователь является отправителем или наоборот.
Итак, как мне изменить его так, чтобы я мог вернуть друзей, если текущий пользователь был и отправителем, и получателем?
любезно помогите !!
Задача ещё не решена.
Других решений пока нет …