勉強したことのメモ

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で縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズ

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

PHPのカレンダー関数

カレンダー関数で使えるかもしれないものをメモ。 ■cal_days_in_mon ...

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

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

PHPでソーシャル(SNS)ログインする方法2018

久しぶりにソーシャル(SNS)ログインを実装する機会があった。以前に対応方法を書 ...

PHPとajaxでチャットの作成

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

数値を3桁とかでカンマ区切りにする

見たこと無い関数が業務中にあったのでメモ。 number_format ■参考サ ...

UTF-16にエンコードされている文字列をUTF-8へデコード

エンコードされている文字列であまり見かけない感じのものがあった。UTF-8やSh ...

時間と数字のフォーマット

教わったのでメモ。 ・時間の整形 strtotime() 例) $ymd = ' ...

PHPの文字化け対策

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

当選確率が異なる抽選(ガチャ)をPHPで作成

ソシャゲのガチャみたいな、当選確率が異なる抽選をPHPで作成したかった。調べたと ...