$limit
(количество новостей на страницу), соответственно получаем кол-во страниц $page_count
, вместе с запросом передаем параметр, допустим &page=3
, соответственно делаем запрос БД с учетом нашего limit и с offset, который будет равен $offset = $limit * $_GET('page')
.SELECT * FROM news LIMIT $limit OFFSET $offset;
for($i=1;$i<=$page_count;$i++)
. Обычный список, который содержит ссылки у который href будет содержать итератор $i
. Ну и соответственно имея $_GET('page')
и $i
вы модете вычислять активный пункт и т.д. Выводить не все, а только следующие 5 и предыдущие 5. Тут уже как говорят "по вкусу"