显示我关注的用户的帖子,但也显示我的帖子

Show posts from users that I follow, but show my posts too

我正在开发一个人们可以相互关注的小型网站。站点上有新闻源,用户可以在其中查看他们关注的其他用户的更新。问题是我只能看到来自其他用户的 posts 而不是我的 posts。我希望当前用户能够在其他用户 posts 中看到他的 posts too Ordered。像 Facebook 墙这样的东西。 我尝试了很多不同的查询和 php,但我只得到其他用户 post 或者当我设法取出我的 post 时,每个都有重复的 post关注我的用户。

我有 3 tables 'members'、'Post' 和 'follow'。成员 table 持有 UserID、姓名和姓氏。 Post table 持有索引到成员 UserID 的 UserID(table 中的 FromID)和来自用户的 post。 follow中table有3列FollowID,Followed和Follower Followed和Follower都是成员UserID的索引。

目前我使用该查询:

$query= "SELECT Post.*, members.*, follow.* FROM Post
 INNER JOIN members ON Post.FromID=members.UserID 
 LEFT JOIN follow ON members.UserID=follow.Followed
 WHERE Post.FromID='$user' OR follow.FollowerID='$user'
 ORDER BY Post.date DESC, Post.time DESC";

$user是当前登录用户的UserID。 该查询 returns 我想要的所有 post 但问题是我的 post 对每个关注我的用户显示 /n 次。

我真的很感激能给我指点我做错了什么的人。谢谢

我认为这个查询可能更容易理解:

$query = "SELECT * FROM Post,members,follow 

WHERE 

Post.FromID=members.UserID
AND
members.UserID=follow.Followed


AND (    Post.FromID='$user' OR  follow.FollowerID='$user')    

ORDER BY Post.date DESC, Post.time DESC";

问题出在您的 $user 上。当前发生的情况是您在 where 子句中有一个 OR 条件。您正在尝试提取您的数据或您的关注者数据。

我的解决方案是从您的查询中删除 $user。因此,您将只有关注者列表数据。对您的帖子进行不同的查询,然后在显示时按日期时间戳对它们进行排序,这样您的帖子也可以与其他关注者一起发布。

将您的帖子和关注者的帖子放在一个查询中。

使用联合。喜欢:

(按日期查询你的帖子ORDER) 联盟 (按日期查询关注者帖子);

同时检查 UNION 在 w3schools 中的使用情况。

希望对您有所帮助