постраничка

  1. <?php
  2.  
  3. $page = (isset($_GET['page']) && $_GET['page'] > 0) ? intval($_GET['page']) : 1;
  4.  
  5. $arr = range(1, 82); /* тест массив */
  6. $n = 5; /* количество элементов на станицу */
  7. $total = sizeof($arr); /* всего элементов , для базы это запрос */
  8.  
  9. // $sep = '?mode=' . $_GET['mode'] . '&amp;id=' . $id . '&amp;';
  10. $sep = '?';  
  11.  
  12. $start = $page==1 ? 0 : ($page - 1) * $n;
  13. $end = $page==ceil($total / $n) ? $total : $page * $n;
  14.  
  15. echo '<div>' . pages($sep, $n, $total) . '</div>';
  16.  
  17. /* для файлов */
  18. for ($i=$start;$i<$end;$i++) {
  19. echo $arr[$i] . '<br/>';
  20. }
  21.  
  22. echo '<div>' . pages($sep, $n, $total) . '</div>';
  23.  
  24. /* для базы*/
  25. /* limit $start, $n */
  26.  
  27. function pages($url, $str, $total) {
  28. global $page;
  29. $totalpage = ceil($total / $str);
  30. if ($page > $totalpage) $page = $totalpage;
  31. if ($page ==  1) {
  32. #$pervpage = '<a href="' . $url . 'page=1">&lt;&lt; </a>';
  33. } else {
  34. $pervpage = '<a href="' . $url . 'page=' . ($page - 1) . '">&lt;&lt;</a> ';
  35. }
  36. if ($page !=  $totalpage) {
  37. $nextpage = ' <a href="' . $url . 'page=' . ($page+1) . '">&gt;&gt;</a>';
  38. } else {
  39. #$nextpage = '<a href="' . $url . 'page=' . $totalpage . '"> &gt;&gt;</a>';
  40. }
  41. if ($page > 4) $pp = '<a href="' . $url . 'page=1">1 </a> ... ';
  42. if ($totalpage - 4 >= $page) $pt = ' ... <a href="' . $url . 'page=' . $totalpage . '">' . $totalpage . '</a>';
  43. if ($page-3 > 0) $page3left = '<a href="' . $url . 'page=' . ($page-3) . '">' . ($page-3) . '</a> | ';
  44. if ($page-2 > 0) $page2left = '<a href="' . $url . 'page=' . ($page-2) . '">' . ($page-2) . '</a> | ';
  45. if ($page-1 > 0) $page1left = '<a href="' . $url . 'page=' . ($page-1) . '">' . ($page-1) . '</a> | ';
  46. if ($page+3 <= $totalpage) $page3right = ' | <a href="' . $url . 'page=' . ($page+3) . '">' . ($page+3) . '</a>';
  47. if ($page+2 <= $totalpage) $page2right = ' | <a href="' . $url . 'page=' . ($page+2) . '">' . ($page+2) . '</a>';
  48. if ($page+1 <= $totalpage) $page1right = ' | <a href="' . $url . 'page=' . ($page+1) . '">' . ($page+1) . '</a>';
  49. return $pervpage . $pp . $page3left . $page2left . $page1left . '[ <b>' . $page . '</b> ]' .  $page1right . $page2right . $page3right . $pt . $nextpage;
  50. }
  51. ?>
пример
<< 1 ... 8 | 9 | 10 | [ 11 ] | 12 | 13 | 14 ... 17 >>

Реклама

Мы в соцсетях

tw tg yt gt