googleなんかの検索結果が複数ページある場合、
1 2 3 4 5 6 7 8 9 次へ
というふうに、頁番号が表示されるのはご存じの通り。
これに近い表示を行う為のライブラリがDB_Pager
使い方は・・・
include_once("DB_Pager/Pager.php");
// 適当にDB処理
$pager = DB_Pager::getData($start,$limit,$total,10);
foreach($pager['pages'] as $key => $val){
if($key == $pager['current']){
// カレントページ
$buff .= " <b>" . $key . "</b> ";
}else{
// それ以外
$buff .= sprintf(" <a href=list.php?start=%s>%d</a> ",$val,$key);
}
}
みたいナァ〜。
getDataのパラメータの意味は、左から、今表示している番号、一頁あたりの表示数、トータル数、ページ番号をいくつ表示するか。
$pagerの連想配列には、下記のようなkeyでデータが帰ってくる。

(色の対応を見てね)
全部で15ページあって、今10ページ目を表示していて、今の頁番号だけ、リンクを張らない・・という処理は自前でやらないといけない。まぁ、まずはprint_rで内容を見れば意味はすぐ分かると思う
まぁ、若干動作に気に入らないところがあるけど、十分ですな。
...2004.10.29追記
Nega Diary: PEAR DB_Pager
に、もう少し詳しい使い方を追加。