Есть скрипт вывода всех пользователей из БД с пагинацией.
spoilerpublic static function getUsers() {
$perpage = 15;
$page = (!empty($_GET['p']))? intval($_GET['p']): 1;
$res = $db->query("SELECT COUNT(*) FROM users WHERE status_id!=100");
$count = $res->fetchColumn();
$pages_count = ceil($count / $perpage);
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage;
$sth = $db->prepare("SELECT id_user, name_user FROM user LIMIT :start, :limit");
$sth->bindParam(':start', $start_pos, PDO::PARAM_INT);
$sth->bindParam(':limit', $perpage, PDO::PARAM_INT);
$sth->execute();
while($row = $sth->fetch(PDO::FETCH_ASSOC)) {
$user_info[] = $row;
}
return $user_info;
public function Pager($page, $pages_count) {
global $page, $pages_count;
for ($j = 1; $j <= $pages_count; $j++) {
if ($j == $page) {
echo ' <li class="active"><a href=/users/main/?p='.$j.'>'.$j.'</a></li> ';
} else {
echo ' <li><a href=/users/main/?p='.$j.'>'.$j.'</a></li> ';
}
if ($j != $pages_count) echo ' ';
}
return true;
}
Код работает, но при большом кол-ве пользователей выводятся все ссылки на переключения страниц.
То есть при 1500 пользователей покажет 150 ссылок на переключение страниц.
Как сделать, что бы показывалось, например только так < << ... 5 6 7 ... >> >
Знаю, что надо как-то ограничить, но как не могу сообразить.