gpt4 book ai didi

php - 如何从两个不同的表中同时获取多个用户的数据?

转载 作者:行者123 更新时间:2023-11-29 15:46:03 25 4
gpt4 key购买 nike

我有 1 个用于用户的表,1 个用于评论,另一个用于 friend ,下面是表结构:

评论表:

------------------------------------------------
| comment_id | user_id_c | commentstatus |
------------------------------------------------
| 1 | 1 | Sample comment 1 |
| 2 | 2 | Sample comment 2 |
------------------------------------------------

用户表:

------------------------------------------------------
| id | username | password | Full name |
------------------------------------------------------
| 1 | user1 (loggedin) | Sample 1 | John |
| 2 | user2 | Sample 2 | Smith |
| 3 | user3 | Sample 3 | Andrew |
| 4 | user4 | Sample 4 | Victor |
| 3 | user5 | Sample 3 | Robert |
-------------------------------------------------------

好友表

---------------------------------------------------
| id | friend1 | friend2 | status
---------------------------------------------------
| 1 | user1 | user3 | friend
| 2 | user1 | user5 | friend
| 3 | user2 | user4 | friend
---------------------------------------------------

目前,如果任何用户发表评论,它就会被插入到评论表内的数据库中。现在,如果我登录,我可以从数据库中获取我的所有评论。

为了解释一下,我想告诉大家,根据好友表,用户 1 与用户 3 和用户 5 是好友。

我想要的只是获取登录用户以及登录用户的 friend 的评论。但是,我无法弄清楚如何才能获取登录用户及其 friend 的评论。

我用来获取我的帖子的脚本如下:

public function comments(){
global $pdo;
$query = $pdo->prepare("SELECT u.*, c.* FROM users u INNER JOIN comments c ON u.id = c.user_id_c WHERE u.id = ".$_SESSION['sid']." ORDER BY c.comment_id DESC");
$query->execute();
return $query->fetchAll();
}

然后使用以下代码获取评论:

$comments  = $get->comments();

然后:

foreach($comments as $row){

echo $row['Full name']; //user name from user table in the database
echo $row['commentstatus']; //comment from comments table in the database

它正在完美地为登录用户获取数据,无论如何,我是否可以同时从数据库中获取登录用户的 friend 的评论以及登录用户的评论。

最佳答案

您正在寻找这样的东西:

$query = $pdo->prepare("SELECT u.*, c.* FROM users u INNER JOIN comments c ON u.id = c.user_id_c WHERE u.id = ".$_SESSION['sid']." OR c.user_id IN (SELECT friend_id FROM friends WHERE friends.user_id = ".$_SESSION['sid'].") ORDER BY c.comments_id DESC"

关于php - 如何从两个不同的表中同时获取多个用户的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57027225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com