Web サイトが発展し、ページのコンテンツがますます多くなるにつれて、最初にすべてのコンテンツを読み込むという習慣は徐々に受け入れられなくなります。その結果、ページネーションは徐々に広く採用されるようになり、大規模なデータ セットを読み取る Web サイトのユーザー エクスペリエンスが向上しました。この記事では、PHP を使用してページングを実装するプロセスを紹介します。
ページングの実装を開始する前に、いくつかのデータを準備する必要があります。これらのデータには、総データ量と各ページに表示されるデータ量が含まれます。たとえば、データベース内のユーザー データをクエリし、各ページに表示されるデータの量を 10 に設定する必要があるとします。さらに、現在のページ番号も決定する必要があり、この情報は URL パラメーターを通じてページング スクリプトに渡されます。
まず、データの総量を取得するにはデータベース クエリが必要です。たとえば、この例では、user テーブル内のデータの合計量をクエリしたいとします。クエリ ステートメントは次のとおりです。
SELECT COUNT(*) FROM users
このステートメントを実行すると、ユーザー テーブルにデータがいくつあるかを知ることができます。戻り値が 121 の場合、処理するユーザー データは 121 個あります。
データの総量を取得したら、合計ページ数を計算する必要があります。この計算方法は非常に簡単で、総データ量を各ページに表示するデータ量で割って切り上げるだけです。この例では、1 ページに 10 個のデータを表示するので、合計データ量は 121 個となり、合計 12 ページ必要になります。
ページング リンクの構築は、ページング機能を実現するプロセスにおいて最も重要なステップです。ユーザーがさまざまなページを簡単に閲覧できるように、ページ番号とリンクをページに表示する必要があります。この場合、現在のページ数と総ページ数に基づいてページネーション リンクを構築する必要があります。
以下に示すように、for ループを使用して 1 からページの総数までをたどり、各ページ番号のリンクを構築できます。
for($i=1;$i<=$total_pages;$i++){ echo "<a href='pagination.php?page=".$i."'>".$i."</a> "; }
リンクを構築するときは、現在のページ数値は、リンクに渡されるパラメータとして使用する必要があります。この例では、リンク アドレスは pagination.php、パラメータは page、値は各ページの番号です。このようにして、すべてのページ番号へのリンクを構築できます。
ユーザーが特定のページのリンクをクリックすると、ページング スクリプトはページ番号に基づいてデータベースにクエリを実行し、ページング データを返す必要があります。現在のページ。 LIMIT と OFFSET を使用して、クエリ結果の数と開始位置を制限する必要があります。
たとえば、ユーザーが 3 ページのリンクをクリックした場合、クエリ ステートメントは次のようになります。
SELECT * FROM users LIMIT 10 OFFSET 20
このクエリ ステートメントは、21 番目のデータから始まる 10 個のデータを返します。 、3ページ目のデータです。 LIMIT と OFFSET をページごとに表示されるデータ量に設定し、現在のページ番号 -1 にページごとに表示されるデータ量を乗算することで、現在のページのデータをクエリできます。
最後に、ページ分割されたデータをページに表示します。この例では、3 ページ目のユーザー データを表示する必要があります。ループ ステートメントを使用すると、データベースからクエリされたデータをトラバースし、出力をページに表示できます。具体的なコードは以下の通りです。
$result = mysqli_query($conn, "SELECT * FROM users LIMIT 10 OFFSET 20"); while($row = mysqli_fetch_assoc($result)){ echo $row['username']."<br />"; }
このコードを実行すると、ページ3の10件のユーザーデータがページ上に表示されます。
上記は、PHP を使用してページングを実装する主なプロセスです。データベースにクエリを実行し、ページ数を計算し、ページング リンクを構築し、ページ番号に基づいてページング データをクエリし、最後にページング データをページに表示することで、ユーザーは大規模なデータ セットを簡単に参照できます。
以上がphpを使ってページング機能を実装する方法(プロセス分析)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。