Показ списка друзей

Я создаю систему друзей для базовой социальной сети. Я создал функцию ниже, чтобы отобразить всех друзей пользователя. Легенда: 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, который возвращает только друзей из одного экземпляра, например, где текущий пользователь является отправителем или наоборот.

Итак, как я могу изменить его таким образом, чтобы я мог вернуть друзей, когда текущий пользователь был и отправителем, и получателем? любезно помогите!!

0 ответов

Другие вопросы по тегам