ページネーションは、ウェブサイトの開発プロセスにおいて非常に一般的な機能です。記事リスト、製品リスト、またはコメントデータを表示するかどうかにかかわらず、ページはユーザーエクスペリエンスを効果的に改善し、サーバーのパフォーマンスに対する過剰なコンテンツロードの影響を一度に回避できます。この記事では、PHPを例として使用して、 CEIL()関数とcount()を使用して、シンプルで実用的なページングロジックを実装する方法を説明します。
ページネーションの中心的なアイデアは、多数のデータを複数の「ページ」に分割することであり、各ページにはデータの一部のみが表示されます。たとえば、100個のレコードがあり、ページごとに10個を表示したい場合は、10ページが必要です。
ページングを実装するには、次の重要な変数が必要です。
合計レコード: count()関数を使用して取得します。
ページごとに表示されるレコードの数:定数として修正するか、リクエストパラメーターから取得できます。
現在のページ番号: $ _get ['page']などのGet Requestsから一般的に取得します。
合計ページカウント:レコードの総数をページあたりのレコード数で除算し、 CEIL()で切り上げます。
配列に保存されている一連の記事データがあるとします。
<?php
$articles = [
'記事 1',
'記事 2',
'記事 3',
'記事 4',
'記事 5',
'記事 6',
'記事 7',
'記事 8',
'記事 9',
'記事 10',
'記事 11',
'記事 12'
];
$perPage = 5; // ページごとに表示されます 5 ストリップ
$totalItems = count($articles); // 総記録
$totalPages = ceil($totalItems / $perPage); // 合計ページ数
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page = max(1, min($page, $totalPages)); // ページ番号が妥当な範囲内にあることを確認してください
$offset = ($page - 1) * $perPage; // 現在のページの開始データの場所
$currentItems = array_slice($articles, $offset, $perPage);
foreach ($currentItems as $item) {
echo "<p>$item</p>";
}
?>
ユーザーがクリックしてさまざまなページにジャンプするためには、ページングナビゲーションリンクを生成する必要があります。例は次のとおりです。
<?php
echo '<div class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
if ($i == $page) {
echo "<strong>$i</strong> ";
} else {
echo "<a href=\"https://m66.net/list.php?page=$i\">$i</a> ";
}
}
echo '</div>';
?>
このようにして、ユーザーがリンクをクリックすると、異なるページ番号にジャンプでき、プログラムはページ番号に従って対応するデータコンテンツを表示します。
count()で総データボリュームを取得し、 ceil()を使用してページの総数を計算することにより、シンプルで実用的なページングロジックを実装できます。 PHPは、 array_slice()とユーザーが渡すページ番号パラメーターを使用して、ページングタスクを効率的に処理できます。
この方法は、中小規模のデータページネーションディスプレイに適しています。大規模なデータの場合、データベースレベルでのデータベースレベルの制限ページネーションを最適化することをお勧めします。しかし、いずれにせよ、 CEIL()とcount()の組み合わせを理解することは、ページネーションを習得するための最初のステップです。