php同时处理多个用户信息,php - 通过ID显示多个用户信息时出现问题

这篇博客探讨了在PHP中通过PDO从多个表中获取用户好友信息的问题。作者分享了他们遇到的问题,即使用foreach循环只获取到一个朋友的信息,而期望获取所有朋友的信息。解决方案是通过使用JOIN语句来联接`friends`和`users`表,从而一次性获取所有好友的详细信息。提供的最佳答案展示了如何使用参数化的PDO准备语句,并通过JOIN操作提高查询效率。
摘要由CSDN通过智能技术生成

我正在尝试将它从好友表中获取好友ID的位置,然后从用户表中获取好友信息。我尝试过使用foreach,但是没有运气。

这就是我现在拥有的东西,它只呼应一个朋友,而不是我表中的三个朋友。关于如何解决此问题的任何想法?也许我没有正确地使用?先感谢您!<?php

//Gets users information from users.

$stmt = $DB_con->prepare('SELECT friendsid FROM friends WHERE userid='.$_SESSION['user']['id']);

$stmt->execute();

if($stmt->rowCount() > 0) {

$row=$stmt->fetch(PDO::FETCH_ASSOC);

extract($row);

} else {

$friendsid = $row['friendsid'];

}

$stmt = $DB_con->prepare('SELECT username,userprofile,status FROM users WHERE id='.$friendsid);

$stmt->execute();

if($stmt->rowCount() > 0) {

while($row=$stmt->fetch(PDO::FETCH_ASSOC)) {

extract($row);

?>

<?php echo $row['username'];?>

Avatar

}

} else {

?>

}

?>

最佳答案

准备好的语句使用参数,您应该使用JOIN。$stmt = $DB_con->prepare('SELECT u.* FROM users AS u JOIN friends AS f ON u.id = f.friendsid WHERE f.userid = :user_id');

$stmt->bindParam(':user_id', $_SESSION['user']['id']);

$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC))

{

// Do whatever you want with $row['id'], $row['username'], $row['userprofile']

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值