Flashbacks
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем добрый день! Сделал постраничный вывод результата запроса из базы: // Запрос в базу на количество записей: $q="SELECT count(*) FROM list"; // Результат запроса: $result=$db_query($q); // Количество строк в результате запроса: $total_rows = pg_num_rows($result); //Количество записей на странице: $per_page=20; //Количество страниц: $num_pages=ceil($total_rows/$per_page); // получаем номер страницы if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0; // вычисляем первый оператор для LIMIT $start=abs($page*$per_page); echo "Pages:  "; for($i=1;$i<=$num_pages;$i++) { if ($i-1 == $page) { echo $i." "; } else { echo '<a href="'.$PHP_SELF.'?page='.$i.'">'.$i."</a> "; } } Таким образом я получаю список страниц в виде: 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 (Текущая номер страницы не является ссылкой) Но количество страниц очень быстро заполняется с ростом базы данных, в конечном итоге кличество таких ссылок станет неприлично некрасивым. Очень часто встречается такой вывод страниц (например на форумах): << < 1 2 3 4 5 ... 10 ... 23 24 25 > >> (< и > листают по одной, << и >> - например по 10 влево-вправо). Может у кого-то есть готовый пример как это делается, или как доработать использованный мной пример? |