【PHP】ページ送り機能|連番で振っていくバージョン

php

phpの案件でデータを10件ずつ表示されて次のデータを表示するときに「次」「前」とかページ送りにするけど、そうではなくて「1,2,3,4」と連番をふっていくような仕組みを作成したときのメモ。
ただ自分で試してみた簡易バージョン。CSVで管理した場合なのでデータベースの場合はプログラムが変わってくる

ページ送りするときに必要な変数

ページ送りにするときに、必要な変数を用意する。最大データ表示数を格納する変数など

といった具合に変数を用意しておく

ページ送りに必要なロジック部分を作成する

今回はcsvからデータを取り出してるが、全体の流れを下記のような流れで割り出す

  1. クリックした番号を$idに格納する
  2. csvから配列$dataに一行分のデータを抜き出しそれをまとめた多次元配列$datalistに格納する
  3. $totalにcount()関数で配列総数を格納 
  4. $totalを$maxで割った整数が$pageNumとなる
  5. クリックされた番号に$maxをかけた数値を割り出し$startに格納
  6. $startに$maxを足すことで$endを割りだし格納する

ページ送りのナビゲーションを作成

$pageNumさえ割り出せれば、ナビゲーションの作成は簡単なので説明不要です。
クリックデータは$_GETで送信させます。クリックしたidは配列インデックスが0から始まるが表示は1番目から表示させます。(配列のインデックスが0番目から始まるので・・)

データを表示させる

csvからデータを5つずつ表示させるロジック。ポイントは$startと$endがポイントになります。
上記で$startと$endの割り出し方を書きましたが、両方の変数を元にfor文で$datalistの配列のインデックス番号をずらすことでデータ表示させてます。

動作確認