Php 获得朋友的帖子

Php 获得朋友的帖子,php,mysql,mysqli,Php,Mysql,Mysqli,我正在制作一个社交网络平台。我只是想知道一种只过滤用户朋友的帖子的方法 目前,我过滤帖子的方式是选择所有帖子,但只显示来自用户朋友的帖子,有点像这样: $select = $con->query("SELECT * FROM posts ORDER BY timestamp DESC"); while($postassoc = $con->fetch_assoc()){ $postby = $postassoc['user']; $friendof = $con->qu

我正在制作一个社交网络平台。我只是想知道一种只过滤用户朋友的帖子的方法

目前,我过滤帖子的方式是选择所有帖子,但只显示来自用户朋友的帖子,有点像这样:

$select = $con->query("SELECT * FROM posts ORDER BY timestamp DESC");


while($postassoc = $con->fetch_assoc()){


$postby = $postassoc['user'];
$friendof = $con->query("SELECT id FROM friends WHERE 'from'='$user' AND 'to' ='$postby' OR 'to'='$postby' AND 'from'='$user' AND 'auth'='1'"); 
If($friendof != 0){
//show post
}

}
假设没有错误,从长远来看,这种方法将花费大量时间。有没有更好更有效的方法?

效率极低。你会浏览社交网站上的每一篇帖子来获得它吗?如果你有10亿用户呢

你最好遍历你所有的朋友,找出最相关的朋友,然后显示他们的活动。大型社交网站根据相关性排序你的朋友。(你可以在“聊天”侧面板上看到这一点——你最好的朋友会在上面


一旦您有了一个用户,本网站将进一步讨论查找活动的实现,例如,假设您的朋友表如下所示:表:朋友

id user_id   friend_id
1    22        35
现在,您的post表可能类似于此表:posts

id  user_id  post_content   post_date
1     35        hbsdhdhs      25-Dec
现在,您可以使用“加入”筛选朋友的帖子

$select = $con->query("SELECT posts.post_content FROM posts join friends on  posts.user_id=friends.friend_id  and friends.user_id =22");

非常感谢!但是你能为我解释一下/详细说明一下这个查询吗?因为我对连接函数完全不熟悉。我知道它效率很低,这就是我问的原因。