勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPページングテンプレ

   2014/05/21  PHP

使いやすいのがあったのでメモ。

 

$page                     = ($_GET['page'] && is_numeric($_GET['page'])) ? $_GET['page'] : 0;
$limit                     = 50;
$offset                 = $page * $limit;

$sql = '
SELECT *
FROM table
LIMIT ' . $offset . ' , ' . $limit . '
';

if ($max_num > 0) { //$max_numは総件数
$paging_html     = '';
$paging_url         = 'aaa.php?page=';
$start                     = ($page - 2 > 0) ? $page - 2 : 0;
$total_page         = ceil($max_num / $limit);
$end                     = min($total_page, $start + 6);
if ($end == $total_page) {
$start = max($start - abs(4 - ($end - $page)), 0);
}
$paging_html .= $max_num . '件中 ' . ($offset + 1) . '-' . ($offset+$line_num) . '件を表示|';
$paging_html .= ($page > 0) ? '<a href="' . $paging_url . ($page - 1) . '"><< 前へ </a>' : '<< 前へ ';
if ($start > 0) {
$paging_html .= '<a href="' . $paging_url . '0">1</a> ... ';
}
for ($i = $start; $i < $end; $i++) {
$paging_html .= ($i == $page) ? '<b>' . ($i + 1) . '</b>': '<a href="' . $paging_url . $i . '">' . ($i + 1) . '</a>';
if ($i != $end - 1) { $paging_html .= '|'; }
}
if ($end != $total_page) {
$paging_html .= ' ... <a href="' . $paging_url . ($total_page - 1) . '">' . $total_page . '</a>';
}
$paging_html .= ($page < $total_page - 1) ? '<a href="' . $paging_url . ($page + 1) . '"> 次へ >></a>' : ' 次へ >>';
}

 - PHP

  関連記事

PHPでユーザID毎にディレクトリを作成しキャッシュファイルを格納する方法

PHPで作ったプログラム内にてユーザーID毎に特定のディレクトリを作成し、その中 ...

PHPMailerでエラーメッセージを日本語で出力する方法

PHPMailerのGitHubページを見ていると言語設定についての案内を見つけ ...

CodeIgniter3でCronを実行する方法

CodeIgniter3系で特定の処理をCronで自動実行したかった。以下に設定 ...

PHPでbool値(true / false)を文字列として出力する方法

PHPにてbool値(true / false)をechoで出力するとtrueは ...

PHPでCookie保存時にHttpOnly / Secure属性を設定する方法

あるシステムのセキュリティ対策としてCookie保存時にHttpOnly / S ...