如何在条件满足时选择sql表中的所有行
问题描述:
我有一个这样的表。如何在条件满足时选择sql表中的所有行
+----+---------+-----------+
| id | user_id | friend_id |
+----+---------+-----------+
| 1 | 1 | 20 |
| 2 | 4 | 20 |
| 3 | 6 | 20 |
+----+---------+-----------+
正在开发一个FRIEND_LIST系统,但现在我坚持了代码,问题是,我想呼应所有USER_ID他们friend_id等于20,但是,当我运行我的代码,将只能随声附和第一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则代码检查如果登录用户是等于friend_id该id为20
答
使用一个循环迭代通过关联数组。用这个代替最后三行代码:
while($row = mysqli_fetch_assoc($res_friend_list)){
echo $row['user_id'];
}
我希望这会有所帮助。
+0
它工作正常代码帮助 –
+0
将它标记为正确的:) @CFrancis – Anonymous
答
尝试
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;
}
}
你的选择是好的,问题是你从不确定[**这**](https://stackoverflow.com/questions/9243383/looping-所有的记录都循环通过sql-results-in-php-not-getting-entire-array)帮助 –