вот такая вот жесть
<?php
/*постраничная навигация
*/
/*предположим, что у нас есть следующие данные:
$page=номер страницы
$all=общее количество выводимых единиц*/
$all=50; //для примера
//определяем номер страницы (если не задано, то естественно 1)
$page=(isset($_GET['page'])) ? (int)$_GET['page'] : 1;
//высчитываем общее число страниц (пусть разбивка по 5 элементов на страницу)
$num_pages=ceil($all/5);
//высчитываем с какой позиции надо выводить данные
$start=$page*5-5;
//обработка "дурацких" номеров страниц
if ($page > $num_pages || $page < 1)
{
$page=1;
$start=0;
}
//печатаем
echo '<p>';
for($pr = '', $i =1; $i <= $num_pages; $i++)
{
echo $pr=(($i == 1 || $i == $num_pages || abs($i-$page) < 2) ? ($i == $page ? " [$i] " : ' <a href="'.$_SERVER['SCRIPT_NAME'].'?page='.$i.'">'.$i.'</a> ') : (($pr == ' ... ' || $pr == '')? '' : ' ... '));
}
echo '</p>';
//вот такая вот жесть :)
?>