Постраничка

  1. public static function pageNav($total_num, $on_page, $diapason, $url){
  2.     if(isset($_GET['start'])){
  3.       $start=abs(intval($_GET['start']));
  4.     } else {
  5.       $start=0;
  6.     }
  7.     $max_page=ceil($total_num/$on_page);
  8.     $current_page=round(($start/$on_page), 0);
  9.     if(($current_page-$diapason)>-1) echo'<a href="' . $url . '">1...</a>&nbsp;&nbsp;';
  10.     for($i=-($diapason-1);$i<$diapason;$i++){
  11.     $go=$current_page+$i;
  12.     if($go<0||($go+1)>$max_page) continue;
  13.     if($go==$current_page){
  14.         echo'<b>[' . ($go+1) . ']</b>&nbsp;&nbsp;';
  15.         continue;
  16.     }
  17.     echo'<a href="' . $url . ((substr_count($url, '?')>0)?'&start=':'?start=') . ($go*$on_page) . '">' . ($go+1) . '</a>&nbsp;&nbsp;';
  18.     }
  19.     if(($current_page+$diapason)<$max_page) echo'<a href="' . $url . ((substr_count($url, '?')>0)?'&start=':'?start=') . ($max_page*$on_page) . '">...' . $max_page . '</a>&nbsp;&nbsp;';
  20.   }
$total_num - всего записей;
$on_page - записей на страницу;
$diapason - число ссылок вокруг текущей страницы;
$url - адрес страницы, для которой генерируется постраничка.
---
Использовать можно для выборки результатов от $_GET['start'] до $on_page из базы данных. Чтоб сгенерировать ссылки типа [blue]site.ru?start=1 site.ru?start=2 site.ru?start=3...[/blue] Вызываем так:
  1. pageNav($total, 1, 5, 'site.ru' )

Пример->

Реклама

Мы в соцсетях

tw tg yt gt