【问题标题】:Display following users posts显示以下用户帖子
【发布时间】:2014-08-26 20:46:45
【问题描述】:

所以我有一个项目正在开展,您可以在其中“关注”其他用户,并与其他用户一起查看他们的帖子。就像脸书一样。像这样的

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          |
+----+-----------+---------+-----------+--------------+------------+

所以我假设 both BobAlly 请参阅 alex 的帖子。我遇到的问题是检索帖子并将它们合并在一起。由于我的帖子在另一个表中,我无法找到找出哪个帖子是哪个帖子的方法。

我试过了

SELECT * FROM posts WHERE followed_user=:username ORDER BY post_date DESC 

但无法找到一种方法来使用 :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'];
}

我得到了一个关注者列表,所以我认为这与帖子的检索有关。

【问题讨论】:

    标签: php html mysql sql posts


    【解决方案1】:

    您正在寻找 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 
        )
    

    【讨论】:

    • 如果我也想这样用户也可以在提要中发帖怎么办。所以我会成为鲍勃。我想看看Ally、Alex 和我的帖子。我该怎么办?
    • 不确定我是否必须标记你。 @J A
    • 你这是什么意思?
    • 当我运行查询时,我只看到 other 用户的帖子。我希望看到我的帖子以及 与其他帖子。就像我会看到 Ally 的帖子,Alex 的帖子,我的帖子。
    猜你喜欢
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 2014-10-26
    相关资源
    最近更新 更多