
Код:
function getPages($total, $page, $link, $perpage) {
$mpp = $perpage;
$prev_page = $page - 1;
$next_page = $page + 1;
if ($total <= $mpp) $pages = 1;
elseif($total % $mpp == 0) $pages = $total / $mpp;
else $pages = $total / $mpp + 1;
$pages = (int) $pages;
$s_pages = $page<10 ? 1 : floor($page / 10) * 10;
$e_pages = $page + 9;
if ($e_pages > $pages) {
$e_pages = $pages;
}
$s = "";
if($prev_page != 0) $s = "<a href=\"".$link."page=1\"><<</a> \n";
if($prev_page) {
$s .= "<a href=\"".$link."page=$prev_page\"><</a> \n";
}
for($i=$s_pages;$i<=$e_pages;$i++) {
if ($i != $page) {
$s .= "<a href=\"".$link."page=$i\">$i</a> \n";
} elseif ($i != 1) {
$s .= " <b>$i</b> ";
} elseif ($page != $pages) {
$s .= " <b>1</b> ";
}
}
if($page != $pages) {
$s .= "<a href=\"".$link."page=$next_page\">></a> \n";
$s .= "<a href=\"".$link."page=$pages\">>></a> \n";
}
return $s;
}
--------------------------------------------------------------------------------
а вызывать, например
$print_pages = getPages($total, $page, "$PHP_SELF?param1=1& param2=2&", $pp);
где $total - всего записей, $page - текущая страница, $pp - кол-во записей на страницу.