ホームページ  >  記事  >  バックエンド開発  >  PHP ページネーション

PHP ページネーション

WBOY
WBOY転載
2024-02-28 09:13:31974ブラウズ

PHP ページングは​​ Web サイト開発において重要な役割を果たしており、ページコンテンツをページに表示してユーザーエクスペリエンスを向上させることができます。 PHP エディター Xigua は、PHP を使用してページング機能を実装し、Web サイトの閲覧と管理を容易にする方法を紹介します。この記事を学ぶことで、読者は PHP ページングの原理と実装方法を簡単に習得し、Web サイト開発に新しいスキルとインスピレーションを加えることができます。

PHP ページネーションに Prev<strong class="keylink">io</strong>us および Next ナビゲーション機能を追加する別の方法も示します。このメソッドは、対応するページに移動する機能を最初のメソッドに追加するだけです。


PHP で LIMIT 句と SQL

SELECT

ステートメントを使用して行をページングします。 LIMIT 句と SELECT ステートメントを使用して、ページに表示される最初の n 件の結果を指定します。 anchor タグに GET メソッドとしてページ番号を指定することで、ページを参照できます。このメソッドでは、ページごとに表示する行数を定義し、データベースからすべての行を取得して、必要な合計ページ数を計算します。 $_GET array 関数と isset() 関数を使用して、ユーザーが要求したページ番号を取得できます。

たとえば、変数 $results_per_page を作成し、その中に 2 を格納します。 <strong class="keylink">Mysql</strong>i_num_rows() 関数を使用して、database 内の行数を見つけ、それを $number_of_results 変数に保存します。 ceil() 関数を使用して、行を表示するために必要な合計ページ数を決定します。 ceil() 関数内の $number_of_results 変数を $results_per_page 変数で除算します。 $_GET スーパーグローバル変数と isset() 関数を使用して、page 変数が設定されているかどうかを確認します。 $page 変数がまだ設定されていない場合は、1 に設定します。変数が設定されている場合、値は $page 変数に割り当てられます。 $page 変数を 1 から減算し、それに $this_page_first_result 変数を掛けます。操作を変数 $this_page_first_result に保存します。 LIMIT 句を含む SQL ステートメントを SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page. として記述します クエリを実行して結果を表示します。最後に、$page 変数と $number_of_page の間をループする for ループを作成します。ループ内で、echo anchor タグを使用し、href 属性の値を index.php?page'.$page に設定します。 $page 変数を anchor タグの間に記述します。

以下の例では、データベース内の alpha テーブルには 6 行が含まれています。ページングを実行すると、1 ページあたり 2 行が表示されます。 ceil() この関数は、行を表示するために必要な総ページ数を決定します。最初は $page 変数が設定されていないため、ページは 1 ページ目から始まります。 $this_page_first_result 変数は、ユーザーが現在いるページ番号を決定します。変数 $this_page_first_result は、ページの最初の行を表します。変数 $results_per_page は、ページごとの結果の数を表します。出力セクションには、index.php ページが表示されます。ページ 2 をクリックすると、データベースから次の 2 行が出力されます。

サンプル コード:

<code><code class="language-php hljs" data-lang="php"><span style="display:flex;"><span><span style="color:#408080;font-style:italic">#php 7.x
</span></span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"></span><span style="color:#666"><?</span>php
</span></span><span style="display:flex;"><span><span style="color:#19177c">$number_of_pages</span> <span style="color:#666">=</span> ceil(<span style="color:#19177c">$number_of_results</span><span style="color:#666">/</span><span style="color:#19177c">$results_per_page</span>);
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> (<span style="color:#666">!</span>isset(<span style="color:#19177c">$_GET</span>[<span style="color:#ba2121">'page'</span>])) {
</span></span><span style="display:flex;"><span><span style="color:#19177c">$page</span> <span style="color:#666">=</span> <span style="color:#666">1</span>;
</span></span><span style="display:flex;"><span>} <span style="color:#008000;font-weight:bold">else</span> {
</span></span><span style="display:flex;"><span><span style="color:#19177c">$page</span> <span style="color:#666">=</span> <span style="color:#19177c">$_GET</span>[<span style="color:#ba2121">'page'</span>];
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#19177c">$this_page_first_result</span> <span style="color:#666">=</span> (<span style="color:#19177c">$page</span><span style="color:#666">-</span><span style="color:#666">1</span>)<span style="color:#666">*</span><span style="color:#19177c">$results_per_page</span>;
</span></span><span style="display:flex;"><span><span style="color:#19177c">$sql</span><span style="color:#666">=</span><span style="color:#ba2121">'SELEC&#84; * FROM alpha LIMIT '</span> <span style="color:#666">.</span> <span style="color:#19177c">$this_page_first_result</span> <span style="color:#666">.</span> <span style="color:#ba2121">','</span> <span style="color:#666">.</span> <span style="color:#19177c">$results_per_page</span>;
</span></span><span style="display:flex;"><span><span style="color:#19177c">$result</span> <span style="color:#666">=</span> <strong class="keylink">mysql</strong>i_query(<span style="color:#19177c">$con</span>, <span style="color:#19177c">$sql</span>);
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">while</span>(<span style="color:#19177c">$row</span> <span style="color:#666">=</span> mysqli_fetch_array(<span style="color:#19177c">$result</span>)) {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#19177c">$row</span>[<span style="color:#ba2121">'id'</span>] <span style="color:#666">.</span> <span style="color:#ba2121">' '</span> <span style="color:#666">.</span> <span style="color:#19177c">$row</span>[<span style="color:#ba2121">'value'</span>]<span style="color:#666">.</span> <span style="color:#ba2121">'<br>'</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">for</span> (<span style="color:#19177c">$page</span><span style="color:#666">=</span><span style="color:#666">1</span>;<span style="color:#19177c">$page</span><span style="color:#666"><=</span><span style="color:#19177c">$number_of_pages</span>;<span style="color:#19177c">$page</span><span style="color:#666">++</span>) {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">'<a href="index.php?page='</span> <span style="color:#666">.</span> <span style="color:#19177c">$page</span> <span style="color:#666">.</span> <span style="color:#ba2121">'">'</span> <span style="color:#666">.</span> <span style="color:#19177c">$page</span> <span style="color:#666">.</span> <span style="color:#ba2121">'</a> '</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#bc7a00">?></span><span >
</span></span></span></code></code>

出力:

<code><code class="language-text hljs" data-lang="text"><span style="display:flex;"><span>1 A 
</span></span><span style="display:flex;"><span>2 B 
</span></span><span style="display:flex;"><span>1 2 3
</span></span></code></code>

PHP ページネーションに Previous および Next ナビゲーションを追加する機能

最初のアプローチのコード例にいくつかのコード スニペットを追加して、ページネーションで Previous および Next ナビゲーション機能を提供できます。 $page 変数を 1 ずつ増減して、前後のページを指すことができます。 anchor タグのインクリメント変数とデクリメント変数を使用して、Next 関数と Previous 関数を実装できます。

たとえば、$prev$next という 2 つの変数を作成します。 $page 変数から 1 を減算し、アクションを $prev 変数に割り当てます。同様に、$page 変数に 1 を加算し、それを $next 変数に割り当てます。ページ番号の for ループの前に、Previous という anchor タグをエコーし​​ます。 anchor タグの href 属性を index.php?page=' . $prev . に割り当てます。同様に、hrefpage の値として $next 変数を使用して、Next の別の アンカーを作成します。属性 タグ。

以下の出力セクションでは、2 ページ目を示しています。 Previous をクリックして最初のページに入り、Next をクリックして 3 番目のページに入ります。

サンプルコード:

<code><code class="language-php hljs" data-lang="php"><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># php 7.x
</span></span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"></span><span style="color:#666"><?</span>php
</span></span><span style="display:flex;"><span><span style="color:#19177c">$prev</span> <span style="color:#666">=</span> <span style="color:#19177c">$page</span> <span style="color:#666">-</span><span style="color:#666">1</span>;
</span></span><span style="display:flex;"><span><span style="color:#19177c">$next</span> <span style="color:#666">=</span> <span style="color:#19177c">$page</span> <span style="color:#666">+</span><span style="color:#666">1</span>;
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">' <a href="index.php?page='</span> <span style="color:#666">.</span> <span style="color:#19177c">$prev</span> <span style="color:#666">.</span> <span style="color:#ba2121">'"> Previous </a> '</span>;
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">for</span> (<span style="color:#19177c">$page</span><span style="color:#666">=</span><span style="color:#666">1</span>;<span style="color:#19177c">$page</span><span style="color:#666"><=</span><span style="color:#19177c">$number_of_pages</span>;<span style="color:#19177c">$page</span><span style="color:#666">++</span>) {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">'<a href="index.php?page='</span> <span style="color:#666">.</span> <span style="color:#19177c">$page</span> <span style="color:#666">.</span> <span style="color:#ba2121">'">'</span> <span style="color:#666">.</span> <span style="color:#19177c">$page</span> <span style="color:#666">.</span> <span style="color:#ba2121">'</a> '</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">' <a href="index.php?page='</span> <span style="color:#666">.</span> <span style="color:#19177c">$next</span> <span style="color:#666">.</span> <span style="color:#ba2121">'"> Next </a> '</span>;
</span></span><span style="display:flex;"><span><span style="color:#bc7a00">?></span><span >
</span></span></span></code></code>

出力:

<code><code class="language-text hljs" data-lang="text"><span style="display:flex;"><span>3 C 
</span></span><span style="display:flex;"><span>4 D 
</span></span><span style="display:flex;"><span>Previous 1 2 3 Next
</span></span></code></code>

以上がPHP ページネーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlsjlt.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。