像在Facebook上那样显示和订购帖子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了像在Facebook上那样显示和订购帖子相关的知识,希望对你有一定的参考价值。

我的查询结果有问题。我有三个表,一个跟随者表,一个用户表和一个帖子表,而我登录的用户= $ user_name。我的代码从关注者=的关注者表中调用登录用户的所有代码,并将所有用户的名称称为其关注者($ followi)。然后,我从发帖人表(发帖人姓名=)中的所有人调用该用户所关注的用户名。和代码的作品。

我的问题:我试图按日期对结果进行排序,但是mysql在Followi上具有优先权,并按照发布用户的顺序显示,然后按日期顺序显示。因此,如果一个用户每月有2条帖子,它将显示这两个帖子,然后显示下一位用户,即使他们在最后一分钟发布了5次。

我如何仅显示基于日期的信息,同时将其保持在仅显示登录用户正在关注的用户帖子的位置?

这里是我的代码

 <?php

$follow = "SELECT followi from follow where follower = '$user_name'";
$runf = mysqli_query($con,$follow);
while($row=mysqli_fetch_array($runf))
$followi = $row['followi'];


$sel_msg = "SELECT * from posts where poster_name = '$followi' ORDER by post_time desc";
$run_msg = mysqli_query($con,$sel_msg);

while($row_msg=mysqli_fetch_array($run_msg))



echo "
<div id='post_box'>
".$row_msg['post_content']."
</div>
"; 

?>
答案

这是因为您的循环从followersi数据开始(while循环)。这是您检索数据并将其显示在当前逻辑中的顺序:

获取用户A的帖子

  • 用户A帖子1
  • 用户A帖子2
  • 用户A帖子3

获取用户B的帖子

  • 用户B帖子1
  • 用户B帖子2
  • 用户B发布3

您正在尝试按日期顺序获取帖子,但检索要同时显示的用户信息。您可以使用JOIN语句来做到这一点,例如

$sel_msg = "SELECT posts.*, users.name, users.image 
            FROM posts
            JOIN users on posts.userId = users.id
            ORDER BY post_time DESC";

$run_msg = mysqli_query($con,$sel_msg);

您的代码中不需要第一个sql语句

以上是关于像在Facebook上那样显示和订购帖子的主要内容,如果未能解决你的问题,请参考以下文章

没有下一个用于在 Facebook 的商业帐户图形 API 上获取 instagram 媒体的网址

Android 应用程序不像在 Android Studio 中那样显示在设备上

有没有办法像在联系人应用程序中那样在 UIActionSheet 按钮上显示文本?

Android : 像 Facebook 一样有多个图像和视频的新闻源

Wordpress 按帖子类型订购帖子

图片无法正确显示,我想像 Facebook 图片帖子一样显示