1

PHPブログを作成しました。1つのグリッチを除いて、すべてが稼働しています。記事を日付順に並べ替えて表示したい。したがって、記事がDBに追加されるたびに、自動タイムスタンプが挿入時刻を記録します。

グリッチ->ページごとに5つの記事を表示したい。これを使って最初のページで簡単にできました

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

次に、2ページ目に進み、2ページ目に1ページ目が残ったところから記事を表示したいと思います。降順で10件の記事がある場合、1ページ目に最初の5件が表示され、2ページ目に次の5件が表示されます。

このロジックは、1日に多くの記事が追加されたときにリアルタイムで機能するはずです。このクエリを使用しましたが、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 に答える