我有一張供用戶使用的表,一張用于評論,另一張供朋友使用,下面是表結構:評論表:------------------------------------------------| 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---------------------------------------------------目前,如果任何用戶發表評論,它會被插入到評論表內的數據庫中?,F在,如果我登錄,我可以從數據庫中獲取我的所有評論。解釋一下,我想通知大家,根據朋友表,用戶1是用戶3和用戶5的朋友。我想要的只是獲取登錄用戶和登錄用戶的朋友的評論。但是,我無法弄清楚如何獲取登錄用戶及其朋友的評論。我用來獲取我的帖子的腳本如下: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 databaseecho $row['commentstatus']; //comment from comments table in the database它正在完美地為登錄用戶獲取數據,無論如何我是否可以同時從數據庫中獲取登錄用戶的朋友的評論以及登錄用戶的評論。
1 回答

烙印99
TA貢獻1829條經驗 獲得超13個贊
你正在尋找這樣的東西:
$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"
- 1 回答
- 0 關注
- 155 瀏覽
添加回答
舉報
0/150
提交
取消