我正在制作一个人们可以发帖的页面。然后所有这些帖子都显示在24个单元格的表格中。我可以将最后24个帖子显示没有问题,但现在我不知道如何显示之前的帖子组。如何修复我的代码呢?我实际上有这个:
(我正在移除线条以便于阅读)
$sql = "SELECT
topics.topic_id,
topics.topic_subject
ORDER BY
topics.topic_id DESC";
// ---check everything is fine---- //
function retrieve_info($result)
{
if($row = mysql_fetch_assoc($result))
{echo $topic_if; echo $topic_subject; //and what I want in every cell
}
}
<table width="100%" height="751" >
<tr><td><?php retrieve_info($result);?></td>
<td><?php retrieve_info($result);?></td>
<td><?php retrieve_info($result);?></td>
<td><?php retrieve_info($result);?></td></tr>
<!-- repeat a few more times :-) -->
</table>
我虽然通过在if语句之前用数字更改变量$ row会改变输出,但我仍然看到在屏幕上打印相同的数据。我该怎么做才能展示下一组帖子? 感谢!!!
答案 0 :(得分:0)
function retrieve_info($result)
{
while($row = mysql_fetch_assoc($result))
{
$topic_id = htmlspecialchars($row['topic_id']);
$topic_subject = htmlspecialchars($row['topic_subject']);
echo '<td>';
echo $topic_if;
echo $topic_subject; //and what I want in every cell
echo '</td>';
}
}
答案 1 :(得分:0)
在某些时候,如果您有数百或数千条记录,您将需要对结果进行分页,而不是仅从表中选择所有记录。
要做到这一点,你将每24条记录运行一个查询,你的sql将更像是这样:
$sql = "SELECT
topics.topic_id,
topics.topic_subject
ORDER BY
topics.topic_id DESC
LIMIT 0, 24
";
以及接下来的24,
LIMIT 24, 24
然后
LIMIT 48, 24
等等。
然后你可以点击下一个/上一个按钮来刷新页面并显示下一个24,或者你会得到下一个带有AJAX请求的结果,并通过DOM追加下一个24。
这表明必须采用稍微不同的方法,然后从每个表格单元调用相同的函数。
更像是根据您所在的页码获取相关的24个结果,然后遍历结果数组并打印出包含其中值的表格代码。根据循环的迭代器是否可被4整除(看起来你的网格是4x6),你可以打印出新行的新标签,以及那种东西。
在php和mysql中搜索一下分页,以了解这一切是如何组合在一起的。