Считаем кол-во новостей, делим на некий $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. Тут уже как говорят "по вкусу"