PHP ページ付け
この記事では、SQL
の SELECT
ステートメントで LIMIT
句を使用して PHP でページ付けを実行する方法を紹介します。LIMIT
句を使用して、特定のインデックスから始まる特定の行数を選択し、ページ付けとして表示します。
また、PHP ページ付けに Previous
と Next
のナビゲーション機能を追加する別の方法も示します。このメソッドは、対応するページを最初のメソッドにナビゲートするための追加機能を追加するだけです。
PHP で行をページ付けするには、SQL
の SELECT
ステートメントで LIMIT
句を使用する
LIMIT
句を SELECT
ステートメントとともに使用して、ページに表示する最初の n 個の結果を指定できます。ページを閲覧するための GET
メソッドとして、anchor
タグにページ番号を指定できます。この方法では、ページごとに表示される行数を定義し、データベースからすべての行を取得して、必要なページの総数を計算します。$_GET
配列を isset()
関数とともに使用して、ユーザーが要求したページ番号を取得できます。
たとえば、変数 $results_per_page
を作成し、その中に 2
を格納します。mysqli_num_rows()
関数を使用して、データベースの行数を調べ、$number_of_results
変数に格納します。ceil()
関数を使用して、行を表示するために必要な総ページ数を決定します。$number_of_results
変数を ceil()
関数内の $results_per_page
変数で除算します。isset()
関数で $_GET
スーパーグローバル変数を使用して、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.
クエリを実行し、結果を表示します。最後に、for
ループを作成して、page
変数と $number_of_page
の間をループします。ループ内で、echo
anchor
タグを作成し、href
属性の値を index.php?page'.$page
として書き込みます。anchor
タグの間に page
変数を書き込みます。
以下の例では、データベースの alpha
テーブルに 6つの行が含まれています。ページ付けを実行すると、ページごとに 2 行が表示されます。ceil()
関数は、行を表示するために必要なページの総数を決定します。最初は、$page
変数が設定されていないため、ページはページ 1 から始まります。$this_page_first_result
変数は、ユーザーが現在表示しているページ番号を決定します。変数 $this_page_first_result
は、ページの最初の行を示します。変数 $results_per_page
は、ページあたりの結果の数を示します。出力セクションには、index.php
ページが表示されます。2
ページをクリックすると、データベースから次の 2 行が出力されます。
サンプルコード:
#php 7.x
<?php
$number_of_pages = ceil($number_of_results/$results_per_page);
if (!isset($_GET['page'])) {
$page = 1;
} else {
$page = $_GET['page'];
}
$this_page_first_result = ($page-1)*$results_per_page;
$sql='SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page;
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
echo $row['id'] . ' ' . $row['value']. '<br>';
}
for ($page=1;$page<=$number_of_pages;$page++) {
echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
?>
出力:
1 A
2 B
1 2 3
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 .
を割り当てます。同様に、href
属性の page
の値として $next
変数を使用して、Next
の別の anchor
タグを作成します。
以下の出力セクションでは、2 ページ目が表示されます。Previous
をクリックすると最初のページに移動し、Next
をクリックすると 3 ページ目に移動します。
サンプルコード:
# php 7.x
<?php
$prev = $page -1;
$next = $page +1;
echo ' <a href="index.php?page=' . $prev . '"> Previous </a> ';
for ($page=1;$page<=$number_of_pages;$page++) {
echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
echo ' <a href="index.php?page=' . $next . '"> Next </a> ';
?>
出力:
3 C
4 D
Previous 1 2 3 Next
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn