查询获得论坛帖子/回复 - 只显示最新的帖子
问题描述:
祝您有个美好的一天!查询获得论坛帖子/回复 - 只显示最新的帖子
我一直在试图弄清楚这几个小时,但我不能得到它的工作。
我有一个论坛,应该显示所有主题,由最新的答复排序。
数据库:
表线程
的thread_id,CATEGORY_ID,称号,创建,作者,状态
表回复
reply_id,thread_id单,创建文本
查询:
$query = mysqli_query($link, "SELECT * FROM threads, replies
WHERE threads.thread_id=replies.thread_id AND threads.category_id=$cat
AND threads.status=1 ORDER BY replies.reply_id DESC");
问题: 它只显示了最新的答复线程。我使用while循环来回显所有行。 mysqli_num_rows($ query)显示3,但只打印一个线程。 while循环只包括:
while($r = mysqli_fetch_assoc($query))
{
$thread_id = $r['thread_id'];
$total_comments = mysqli_num_rows(mysqli_query($link, "SELECT thread_id FROM replies WHERE thread_id=$thread_id"));
$last_comment = mysqli_query($link, "SELECT * FROM replies WHERE thread_id=$thread_id ORDER BY reply_id DESC LIMIT 0,1");
$rLastComment = mysqli_fetch_assoc($last_comment);
$query = mysqli_query($link, "SELECT author FROM threads WHERE thread_id=$thread_id");
$a = mysqli_fetch_assoc($query);
echo '<tr>
<td><img src="" alt=""></td>
<td><a href="/forum/thread/'.$thread_id.'">'.$status.''.(substr($r['title'], 0, 15)).'</a> </td>
<td>'.$a['author'].'</td>
<td>'.($total_comments).'</td>
<td>'.$lastComment.'</td>
</tr>';
}
答
您需要重复调用mysqli_fetch_assoc()
,每行一次。
检查PHP文档了解如何使用while循环来输出结果的例子:http://php.net/manual/en/mysqli-result.fetch-assoc.php
我使用一段时间($ R = mysqli_fetch_assoc($查询)),内环路仅仅是为了得到作者为线程。 – user2311073 2013-04-23 11:44:34