現在の位置: ホーム> 最新記事一覧> phpのceil()関数を使用してcount()を組み合わせて、シンプルで実用的なページングロジックを実装する方法は?

phpのceil()関数を使用してcount()を組み合わせて、シンプルで実用的なページングロジックを実装する方法は?

M66 2025-06-12

ページネーションは、ウェブサイトの開発プロセスにおいて非常に一般的な機能です。記事リスト、製品リスト、またはコメントデータを表示するかどうかにかかわらず、ページはユーザーエクスペリエンスを効果的に改善し、サーバーのパフォーマンスに対する過剰なコンテンツロードの影響を一度に回避できます。この記事では、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()の組み合わせを理解することは、ページネーションを習得するための最初のステップです。