簡體   English   中英

滿足條件時如何選擇sql表中的所有行

[英]how to select all rows in sql table when a condition is meet

我有這樣的桌子。

+----+---------+-----------+
| id | user_id | friend_id | 
+----+---------+-----------+
|  1 |     1   |    20     |
|  2 |     4   |    20     |
|  3 |     6   |    20     | 
+----+---------+-----------+

我正在開發一個friend_list系統,但是現在被代碼困住了,問題是我想回顯所有他們的friend_id等於20的user_id,但是當我運行我的代碼時,它只會回顯第一個user_id,請問我要去嗎我的代碼有誤,應該為我提供幫助並進行修復。

 if(isset($_SESSION['em'])){
     $eml = $_SESSION['em'];

     $sql = "select id from users where email='$eml'";
     $res = mysqli_query($conn,$sql);
     $row = mysqli_fetch_assoc($res);

     $id = $row['id'];

     $sql_friend_list = "select user_id from friend where friend_id='$id'";
     $res_friend_list = mysqli_query($conn,$sql_friend_list);
     $row_friend_list = mysqli_fetch_assoc($res_friend_list);
      $fid = $row_friend_list['user_id'];

      echo $fid;
}

因此,現在用戶已登錄,並且用戶ID等於t0 20,然后代碼檢查登錄用戶的ID是否等於20的friend_id。

使用循環遍歷關聯數組。 用以下代碼替換最后三行代碼:

while($row = mysqli_fetch_assoc($res_friend_list)){
      echo $row['user_id'];
}

我希望這會有所幫助。

嘗試

if(isset($_SESSION['em'])){
    $eml = $_SESSION['em'];

    $sql = "select id from users where email='$eml'";
    $res = mysqli_query($conn,$sql);
    $row = mysqli_fetch_assoc($res);

    $id = $row['id'];

    $sql_friend_list = "select user_id from friend where friend_id='$id'";
    $res_friend_list = mysqli_query($conn,$sql_friend_list);
    while($row = mysqli_fetch_assoc($res_friend_list){
        $fid = $row['user_id'];
        echo $fid;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM