[英]Display following users posts
因此,我有一個正在處理的項目,您可以在其中“跟隨”另一個用戶,並與其他用戶一起查看他們的帖子。 像Facebook。 像這樣
Bob: I love SO
Alex: I love SO too
Ally: Me three!
所以這就是我到目前為止所做的。 我選擇登錄用戶所關注的人員,所有人員都存儲在名為followers
的表中。 這是它的樣子
+-----+-------------+-----------+
| id | follow_from | follow_to |
+-----+-------------+-----------+
| 319 | bob | alex |
| 320 | ally | alex |
| 320 | alex | ally |
+-----+-------------+-----------+
如您所見,它將顯示用戶及其關注的對象。 所以這就是我如何檢索您關注的人的列表
SELECT * FROM followers WHERE follow_from = :username
現在那會回來
Bob
Alex
Ally
現在到帖子上。 我將帖子存儲在另一個稱為“帖子”的表中。 看起來像這樣
+----+-----------+---------+-----------+--------------+------------+
| id | post_user | post_ip | post_date | post_content | post_likes |
+----+-----------+---------+-----------+--------------+------------+
| 1 | alex | ::1 | | I like cats | 0 |
+----+-----------+---------+-----------+--------------+------------+
所以我假定這兩個 Bob
和Ally
看到Alex的帖子。 我遇到的問題是檢索帖子並基本上將它們合並在一起。 由於我的帖子在另一個表中,因此我找不到找到哪個帖子是哪個的方法。
我已經試過了
SELECT * FROM posts WHERE followed_user=:username ORDER BY post_date DESC
但是無法找出一種使用:username
和多個用戶名的方法。 像追隨者。 因此,基本上我的問題是,如何在一個牆上顯示來自多個用戶的多個帖子。 或者,如果有人可以解決我如何從您關注的多個人中選擇帖子的問題。
僅當我執行SELECT * FROM followers WHERE follow_from = :username
時添加,在SELECT * FROM followers WHERE follow_from = :username
並運行
$posts = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$posts[] = array(
'follow_to' => $row['follow_to']
);
}
然后做
foreach($posts as $post) {
echo $post['follow_to'];
}
我得到了一個追隨者列表,所以我認為這與帖子的檢索有關。
您正在尋找JOIN /子查詢,
SELECT
*
FROM
posts
WHERE
post_user IN
(
SELECT follow_to FROM followers WHERE follow_from = :user
)
更新
如果您想加載一個人以及關注者的帖子列表,
SELECT
*
FROM
posts
WHERE
post_user IN
(
SELECT
follow_from
FROM
followers
WHERE
follow_to = :user
OR
follow_from = :user
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.