我的网站使用了一个用于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来排序的。
答案 0 :(得分:1)
您必须拥有日期字段,或使用时间戳按时间顺序组织帖子。
[更新] 啊,我认为问题在于,当你应该使用join语句时,你试图用while循环迭代一些东西。我知道你真的不希望有人把你链接到一个通用的PHP页面,但这是一个mysql页面,它就是你需要的。
http://dev.mysql.com/doc/refman/5.0/en/join.html
当您尝试使用此功能时,请回复您所做的操作,如果仍有问题,我会尽力帮您排查问题。