@Автор: Сергей Кашурин @Источник: www.knowledgeacademy.ru @Примечание: для работы функции нужна база MySql. Не забудьте пожалуйста сменить название таблицы в примере на своё. //================================================ #На вход подаю MySQL запрос, выходит так -> paginator("SELECT COUNT(*) AS `id` FROM `LESSONS`") $pages) { $page = $pages; } $start = ($page-1)*$nums; # Если записей в базе пока нет if ($start < 0) $start = 0; # Показываем сами странички $neighbours = 3; $left_neighbour = $page - $neighbours; if ($left_neighbour < 1) $left_neighbour = 1; $right_neighbour = $page + $neighbours; if ($right_neighbour > $pages) $right_neighbour = $pages; $P; if ($page > 1) { $P .= ' начало ... ←сюда '; } for ($i=$left_neighbour; $i<=$right_neighbour; $i++) { if ($i != $page) { $P .= ' ' . $i . ' '; } else { # Активная страница $P .= ' ' . $i . ' '; } } if ($page < $pages) { $P .= ' туда→ ... конец '; } # Формируем сами странички и данные для основного запроса LIMIT $start.",".$nums) $arr = Array(0 => $P, 1 => $start.",".$nums); return $arr; } //================================================ # Пример функции getShortLessons function getShortLessons($startStop) { $this->row = mysql_query("SELECT * FROM `LESSONS` ORDER BY `id` DESC LIMIT {$startStop}"); while($this->res = mysql_fetch_array($this->rowt)) { echo $this->res['MY_TEXT']; } } //================================================ # Пример использования $startStop = paginator("SELECT COUNT(*) AS `id` FROM `LESSONS`"); getShortLessons($startStop[1]); echo $startStop[0]; ?> @Источник: www.knowledgeacademy.ru