我正在制作一个类似博客的事件日历,其中显示即将发生的事件。过去的事件不再出现。一切正常,但我想将记录数量限制为每页 10 条,然后单击进入下一组。
现在我有这个:
<?php
$past = strtotime('now');
$result = mysql_query("SELECT * FROM data ORDER BY '$thedate' ASC LIMIT 0,10");
while($row = mysql_fetch_object($result))
{
$end_event_date = $row->end_strtotime;
if($end_event_date > $past) {
//display data
问题是,过去的事件仍然在此列表中“计算”,具体取决于它们的 id,如果它们按照需要在过去,它们就不会显示。因此,可能只显示 3 或 7 条记录,而不是 10 条记录。我该如何实际显示接下来的 10 个事件(按日期排序,无论其 ID 是什么)?感谢您的任何提示...
最佳答案
仅过滤查询中过去的事件。这使您的代码更容易并解决您的问题。试试这个:
<?php
$past = strtotime('now');
$result = mysql_query("SELECT * FROM data WHERE end_event_date > NOW() ORDER BY '$thedate' ASC LIMIT 0,10");
while($row = mysql_fetch_object($result))
{
//display data
如果字段名称在您的数据库中的名称不同,您可能需要更改字段名称 end_event_date
。
注意:请不要再使用mysql_*
函数。它们已被弃用。请改用 mysqli_*
或 PDO
。
关于MySQL 使用 LIMIT 无论记录的 id 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311467/