1

我做了一个 PHP 博客。除了一个小故障,一切都正常运行。我想按日期降序显示文章。因此,每当一篇文章被添加到数据库中时,自动时间戳都会记录插入的时间。

GLITCH - > 我想每页显示 5 篇文章。我使用这个很容易在第一页上做到了这一点

$sql="SELECT id,article_name,article_body,date 
         from articles order by date desc limit 5" ;

现在我想继续第二页,并希望第二页显示第 1 页离开的文章。如果有 10 篇文章按降序排列,则第 1 页应显示前 5 篇,第 2 页应显示后 5 篇。

当每天添加许多文章时,此逻辑应该实时工作。我使用了这个查询,但它只显示 1 行。

$sql="select id,article_name,article_body,unix_timestamp(date) 
           from articles 
           where date < (select unix_timestamp(date)
                 from articles order by date desc limit $n,1 ) 
           order by date desc limit $n,5" ;

$n - 从中​​提取行的 id。

4

2 回答 2

2

利用 sql 中的偏移量:

$items_per_page=5;   
$offset=($current_page-1)* $items_per_page;

sql:

SELECT id,article_name,article_body,date 
         from articles order by date desc LIMIT  $items_per_page OFFSET $offset
于 2012-08-07T06:13:23.580 回答
1

尝试:

select id,article_name,article_body,unix_timestamp(date) 
from articles 
where date < ( select date from articles order by date desc limit $n,1 ) 
order by date desc limit $n,5

其中 $n 应该是上一页的最后一个 id

于 2012-08-07T06:09:41.157 回答