RTFM! статьи, советы, скрипты
::Заработок с помощью сайта ::JScript по-русски! ::Все русские мануалы::
МЕНЮ
О САЙТЕ
НОВОСТИ
СТАТЬИ
КНИГИ
АППЛЕТЫ
СВЯЗЬ

СЧЕТЧИКИ
Rambler's Top100
Рейтинг@Mail.ru
Яндекс цитирования

PHP: разделение на страницы

Автор: DDeveloper Сайт: http://protoplex.ru/     Рейтинг: N/A из 7       <<НАЗАД
   
   Явная нехватка материала на эту тему побудила меня к написанию этой статьи. Сразу же оговорюсь - метод, показанный здесь, неоригинален, я нашел описание его использования где-то на просторах Рунета и просто немного доработал. Метод же касается разделения большого количества данных (новостных лент, списков и т.д.) на страницы, т.е. создание на вашей веб-странице постраничного вывода информации.
   
   Здесь я приведу пример, работающий с БД MySQL, но при желании его не трудно будет перенастроить на использование текстовых файлов, если вы храните данные в них.
   
   Итак, начнем. У нас имеется некоторое количество записей в таблице базы данных, условно назовем ее table. Эти данные выводятся на страницу одним потоком, а должны бы несколькими. Т.е. при достижении на странице количества записей, например, в 10 штук, скрипт бы автоматически "заворачивал" ленту так, чтобы следующая часть данных находилась уже на другой странице. И при этом формировал гиперссылки примерно такого вида - "1 2 3", которые мы часто видим на современных веб-сайтах. При переходе на 2 страницу желательно, чтобы ссылка на нее становилась неактивной, зато появлялась гиперссылка не первую. В общем, и так далее.
   
   Перейдем к самому скрипту.
   
   Допустим, ключи-идентификаторы полей у нас хранятся в поле ID, которое является ключевым и самовозрастающим. Тогда для получения количества записей просто считываем количество находящихся в базе ключей:
   
   $query=mysql_query("SELECT id FROM table");
   $num_of_rows=mysql_num_rows($query);
   
   Следующая строка нужна для указания того, что количество полей как раз соответствует количеству материала (в принципе, можно вполне обойтись и без нее, но это уж мое хобби - вводить множество нужных и ненужных переменных):
   
   $total_mat_number=$num_of_rows;
   
   Дальше указываем количество материала на одной странице:
   
   $mat_per_page=10;
   
   Рассчитываем, сколько всего у нас получится страниц:
   
   $total_pages=ceil($total_mat_number/$mat_per_page);
   
   Далее, собственно, создаем сам цикл разбиения данных на страницы и создания ссылок, для этого используем оператор for
   
   for ($i=0; $i<$total_pages; $i++){
   $page_number=$i*$mat_per_page;
   if ($page_number!=$page) {
   echo "a href=file.php?page=$page_number target=_self>".($i+1)."a";
   } else {
   echo "($i+1)";
   };
   
   Как видно из этого цикла, скрипт постоянно подсчитывает количество уже опубликованного на странице материала, и по достижении числа, указанного в $total_pages (у нас это 10), "заворачивает" ленту на другую страницу, заодно формируя на нее гиперссылку. Что собственно от него и требовалось!
   
   


<<НАЗАД      ОЦЕНИТЬ СТАТЬЮ    ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :  раз.




пейкюлю



 
 
 
 
 
pauk ©® 2000-2015. All rights reserved.
При перепечатке ссылка на сайт и указание обязательны.
Мнение администрации сайта не всегда совпадает с мнением автора.
Орфография и пунктуация - авторские.
Администрация не несет никакой ответственности за использование материалов.
.
Protected by Copyscape DMCA Takedown Notice Infringement Search Tool