簡體   English   中英

顯示以下用戶帖子

[英]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          |
+----+-----------+---------+-----------+--------------+------------+

所以我假定這兩個 BobAlly看到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM