(怎么样)我可以用这个做新闻吗?

时间:2012-08-08 12:39:49

标签: php mysql sorting

我的网站使用了一个用于wallposts的表(“users_wall”)和一个用于追随者的表(“users_follow”)。 wallposts表看起来像这样(或多或少):

ID    NAME    USER_ID (the id of the wall it's posted on)   CONTENT
1     James     3                                             Hi!
2     Jim       3                                             Hey there!

关注者/关注表如下所示:

ID   HEFOLLOWS    THISGUY
1     James         Jim
2     Jim           James

如何使用此工作反馈?我目前有一个Feed,但我发现没有办法按帖子的ID排序,而不是发帖人。我的看起来像是:

James: Hey (15th)
James: Hi! (13th)

Jim:   Hi! (14th)

当我想要它时:

James: Hey (15th)
Jim:   Hi! (14th)
James: Hi! (13th)

那我怎么能这样做?请解释而不是将我发送到一般的mysql / php学习网站。

谢谢:)

编辑:这是关于我如何制作新闻Feed的基本版

<?php
$getfollowing = mysql_query("SELECT * FROM users_follow WHERE hefollows = '$username'");
while ($row = mysql_fetch_assoc($getfollowing)){
  $followername = $row['thisguy'];
  $getposts = mysql_query("SELECT * FROM users_wall WHERE name = '$followername' SORT BY id DESC");
  while ($rows = mysql_fetch_assoc($getposts){
    $date = $rows['date']
    (...)
  ?>
  <div class="share">
    <?php echo($nameofposter); ?>
    <br />
    <?php echo($share_content); ?> ( <?php echo($date); ?> )
  </div>
  <?php
  }
  ?>

这将导致:

<div class="share">
  James
  <br />
  Hey (15th)
</div>

<div class="share">
  James
  <br />
  Hi! (13th)
</div>

<div class="share">
  Jim
  <br />
  Hi! (14th)
</div>

因为詹姆斯是数据库中的第一个,并且它是由跟随者/跟随者而不是分享ID来排序的。

1 个答案:

答案 0 :(得分:1)

您必须拥有日期字段,或使用时间戳按时间顺序组织帖子。

[更新] 啊,我认为问题在于,当你应该使用join语句时,你试图用while循环迭代一些东西。我知道你真的不希望有人把你链接到一个通用的PHP页面,但这是一个mysql页面,它就是你需要的。

http://dev.mysql.com/doc/refman/5.0/en/join.html

当您尝试使用此功能时,请回复您所做的操作,如果仍有问题,我会尽力帮您排查问题。