勉強したことのメモ

webプログラマが勉強したことのメモ。

PHPページングテンプレ

      2014/05/21

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

 

$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の連想配列と正当性のチェック

ソースの解析中、こんな書き方があったのか、 と思ったのでメモ。 $List = ...

jQueryとprototypeの共存

prototypeを先に使っているがjQueryに移行してきている ページで、尚 ...

PHPの文字化け対策

PHPファイルもDBも全部UTF-8で出来たらいいけど、 そうもいかない場合が多 ...

smart_resize_imageで縦横の比率関係なく、固定リサイズ

PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったs ...

PHPで他サーバにファイルをアップロードする2

formで画像を送信した後、他サーバにファイルをアップロードしたかった。以前はP ...

画像をアップロードすると複数サムネイルを生成する方法

フォームで画像をアップロードすると、予め定めておいた大中小のサイズでサムネイル画 ...

PHPで配列を値で検索、破棄

PHPの配列で特定の値が入っていれば それを破棄したいということがあった。 ・u ...

PHPでデータをファイルキャッシュさせる(Cache_Lite)

最近携わった案件でPHPでファイルキャッシュをしているシステムがあった。今までフ ...

PHPとSQLiteで簡易BBSの作成

PHPとSQLiteの練習で簡易掲示板を作ったのでメモ。   &nbs ...

PHPでディレクトリの作成と削除

PHPでユーザID毎にディレクトリを作成しその中にキャッシュファイルを格納したか ...