勉強したことのメモ

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のfor文とforeach文

ループ処理の際、forとforeachのどっちでもいけそうな場合、 特にどっちを ...

PHPにてacebook / twitter / Googleアカウントでソーシャル(SNS)ログインする方法

PHPにて制作したシステムで「facebook / twitter / Goog ...

PHPとajaxでチャットの作成

■ソース ・index.php <? error_reporting(E_ ...

PHPでLINEログイン後「ユーザー名」「ユーザーID」「プロフィール画像URL」「メッセージ」を取得する方法

<a>タグのリンクからページ遷移するとLINEログインし、その後に「 ...

MySQLで加算しつつNULL値は0にする

いくつかのコードに対して投票を行い、 その合計値をスコアとして出したい。 ただ、 ...