一覧ページなどで一定数の表示を超えた場合、ページを分けて表示するためのリンクを作成し表示させる。

データ取り出し

※$tool->SQLでSQLを実行すると想定

$results = $tool->SQL( 'SELECT count(id) FROM contact_data order by id desc' );
$results = json_decode(json_encode($results), true); // オブジェクト型から配列型へ変換
$total = $results[0]['count(id)']; // データのトータルを取得

$limit = 20; // 表示する行数

$page_num = $total / $limit; // ページ数の計算

$num = 0; // 基本は0からスタート
if(!empty($_GET['p']) and ctype_digit($_GET['p'])) {
	if($_GET['p'] > 1) {
		$num = $limit * ($_GET['p'] - 1);
	}
}

$limit_str = " limit ".$num.", ".$limit; // limitを指定する文字を作成

$results = $tool->SQL( 'SELECT * FROM contact_data order by id desc'.$limit_str ); // 指定した位置から表示数分取得
$list_data = json_decode(json_encode($results), true);

一覧表示

<?php if($page_num > 1): ?>
	<?php for($i = 1; $i <= $page_num; $i++): ?>
		<span<?php if((empty($_GET['p']) and $i == 1 ) or (!empty($_GET['p']) and $_GET['p'] == $i)) echo " class='active'"?>><a href="?p=<?php echo $i; ?>"><?php echo $i; ?></a></span>
		<?php if($i < $page_num): ?>
			|
		<?php endif; ?>
	<?php endfor; ?>
<?php endif; ?>