0

基本的なソーシャル ネットワークのフレンド システムを作成しています。ユーザーのすべての友達を表示する以下の関数を作成しました。凡例: sid = 送信者 ID。rid = 受信者 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 が 2 つの if ループのいずれかにのみ割り当てられます。これは、現在のユーザーが送信者である場合や、単一のインスタンスから友人のみを返す場合などです。逆に。

では、現在のユーザーが送信者と受信者の両方である場合に友人を返すことができるようにするにはどうすればよいですか?? 親切に助けて!!

4

0 に答える 0