php Пример использования pagination new Pagination 10 100 _GET query S

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
/*
*
* Пример использования:
*
* $pagination = new Pagination(10, 100, $_GET['p']);
* $query = "SELECT * FROM `users` ORDER BY `name` " . $pagination -> limit;
*
* $pagination -> printPages();
*/
class Pagination {
public $limit, $page, $pages;
/*
* Парметры:
* $elements - кол-во элементов на странице
* $total - всего записей, которые нужно разбить по страницам
* $p - текущая страница. Лучше всего получать из $_GET
*/
function __construct($elements, $total, $p) {
$pages = ceil($total / $elements);
if($p < 1) $p = 1;
if($p > $pages) $p = $pages;
$start = abs($p * $elements) - $elements;
$this -> limit = "LIMIT $start, $elements";
$this -> page = $p;
$this -> pages = $pages;
}
/* Выводим панель навигации по страничкам */
function printPages($params = '') {
$p = $this->page;
$pages = $this->pages;
echo '<div class="panelpage b_top">';
if(($p - 1) > 0) {
$prevPage = $p - 1;
echo "<a href=\"?p=$prevPage&$params\"> &larr; Предыдущая</a>";
}
if((($p + 1) <= $pages) and (($p - 1) > 0)) echo ' | ';
if(($p + 1) <= $pages) {
$nextPage = $p + 1;
echo "<a href=\"?p=$nextPage&$params\">Следующая &rarr; </a>";
}
echo '</div>';
echo '<div class="pagination block">';
if($p > 3) {
echo "<a href=\"?p=1&$params\">1</a> . ";
}
if(($p - 2) > 0) {
$pprevPage = $p - 2;
echo "<a href=\"?p=$pprevPage&$params\">$pprevPage</a>";
}
if(($p - 1) > 0) {
$prevPage = $p - 1;
echo "<a href=\"?p=$prevPage&$params\">$prevPage</a>";
}
echo '<span>' . $p . '</span>';
if(($p + 1) <= $pages) {
$nextPage = $p + 1;
echo "<a href=\"?p=$nextPage&$params\">$nextPage</a>";
}
if(($p + 2) <= $pages) {
$nnextPage = $p + 2;
echo "<a href=\"?p=$nnextPage&$params\">$nnextPage</a>";
}
if($p != $pages and $p != $pages - 1 and $p != $pages - 2) {
$endPage = $pages;
echo " . <a href=\"?p=$endPage&$params\">$endPage</a>";
}
echo '</div>';
}
}
?>