2017-05-25 4 views
0

私はこのようなテーブルを持っています。条件が満たされたときにSQLテーブルのすべての行を選択する方法

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

がfriend_listシステムを開発しています、しかし、今のコードで立ち往生しています、問題は、私は20にその彼らのfriend_id等しいすべての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が20

+0

を試すにはOKですが、問題は、あなたが[**この**](https://stackoverflow.com/questions/9243383/looping-たぶん、すべてのレコードからループに持っていますSQLの結果をPHPで取得できません)ヘルプ –

答えて

1

反復するループを使用しているfriend_idに等しい場合、そのユーザーIDは、コードチェック等しいT0 20連想配列を介して。最後の3行のコードを次のように置き換えてください:

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

これが役に立ちそうですか?

+0

コードのヘルプがうまく機能しています –

+0

正しいとマークしてください:) @CFrancis – Anonymous

0

あなたの選択

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; 
    } 
} 
関連する問題