PHP ページングは Web サイト開発において重要な役割を果たしており、ページコンテンツをページに表示してユーザーエクスペリエンスを向上させることができます。 PHP エディター Xigua は、PHP を使用してページング機能を実装し、Web サイトの閲覧と管理を容易にする方法を紹介します。この記事を学ぶことで、読者は PHP ページングの原理と実装方法を簡単に習得し、Web サイト開発に新しいスキルとインスピレーションを加えることができます。
PHP ページネーションに Prev<strong class="keylink">io</strong>us
および Next
ナビゲーション機能を追加する別の方法も示します。このメソッドは、対応するページに移動する機能を最初のメソッドに追加するだけです。
LIMIT
句と SQL
の ステートメントを使用して行をページングします。 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">'SELECT * 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>
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 .
に割り当てます。同様に、href
の page
の値として $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 サイトの他の関連記事を参照してください。