SiteMaker - Академия сайтостроительства | Разработка сайта
| Вёрстка сайта
| Веб программирование
| Интернет технологии
| Продвижение ресурса
| Инструментарий
карта сервера :: форум :: профайл :: авторам :: о сайте
Гид: SiteMaker.Ru » Веб программирование » PHP » Ночные мытарства спеца по раскрутке, или постраничный вывод контента в браузер на примере PHP

Ночные мытарства спеца по раскрутке, или постраничный вывод контента в браузер на примере PHP


Версия для печати
Половина второго ночи, несколько дней недосыпа... И вдруг озарение - наконец-то я понял, какой-такой супер-пупер скрипт мне нужен для раскрутки моего нового сайта. Сказано - сделано, сажусь... нет не писать этот супер-пупер скрипт :) Программисты народ ленивый, спецы по раскрутке тем более (отсюда и баннерообменные сети, авторегистраторы в каталогах и пр. лентяйские штучки). В общем лезу на Google и начинаю методично обшаривать Рунет в поисках требуемого. Проходит час, два... В душу закрадываются смутные подозрения, плавно перерастающие в уверенность, что требуемый мне скрипт в природе либо не существует, либо спрятан на чьем-то заповедном локалхосте с правами доступа 000.

Разбиваю стоящую перед скриптом задачу на несколько составных и минут за 15 пишу реализацию большинства его (скрипта) функций :) Радостно берусь за следующую фичу... В общем, необходимо всего-то навсего обеспечить постраничный вывод контента. То есть, например, имеется 60 статей и нужно эти статьи выводить по 10 на страницу и построить меню для оного вывода в виде "1 2 3 ..."

Четыре утра, окромя заветного "LIMIT" в голову ничего не приходит. И дело даже не в том, что БД к моему скрипту никакого отношения не имеет. С горечью понимаю, что квалификация потеряна, лучшие годы жизни прожиты впустую и... иду на Google ;)
После... в общем уже наступил рассвет. К этому времени я познакомился с кучей литературы по данному вопросу, но везде ситуация так или иначе рассматривалась в контексте работы с SQL, либо я постоянно наталкивался на какую-то растиражированно-заумную статью про "отделение алгоритма постраничного вывода от контекста или-что-то-в-этом-роде" (ИМХО, нижеприведенные 7 строчек кода эту проблему решают) в которой ничегошеньки не понял... :( И вот когда я уже отчаялся и решил что утро вечера мудренее, на каком-то дремучем, заросшим мхом форуме (адрес к сожалению канул в Лету - по крайней мере у меня его нет), наткнулся на переписку некоего вечно извиняюшегося Программера и безумного и злобного Модератора - тема переписки была посвящена именно построению меню для постраничного вывода. И это было именно то что нужно!

В общем, ниже по тексту я исправляю несправедливость: теперь в Интернете есть статья о том, как обеспечить построение меню для постраничного вывода! Простой рабочий код на PHP, с подробными комментариями. Никакой излишней функциональности типа ссылок "next page". Сделано сие намеренно - ни разу в жизни не нажимал на "next" если можно было нажать на номер страницы - а данная статья написана с целью дать возможность понять основной принцип, т.е. чем меньше кода, тем лучше (хотя кнопка "next" и добавляется тремя строками кода).

Соглашения о комментариях к коду:

  • "Статья" - это некий целостный блок данных (не обязательно текстовых) который и выводится по несколько штук на страницу (это могут быть статьи, новости, картинки и пр.)
  • "Страница" - это страница :) на которой расположено некоторое количество "статей".

<?
$total_articles_number = 79;   //общее количество статей
$articles_per_page=10; // количество статей на странице
//получаем количество страниц
$total_pages = ceil($total_articles_number/$articles_per_page);


// запускаем цикл - количество итераций равно количеству страниц
  for ($i=0; $i<$total_pages; $i++){
// получаем значение $from (как $page_number) для использования в формировании ссылки
    $page_number=$i*$articles_per_page;
// если $page_number (фактически это проверка того является ли $from текущим) не соответствует текущей странице,
// выводим ссылку на страницу со значением $from равным $page_number
    if ($page_number!=$from) echo "<a href='".$PHP_SELF."?from=".$page_number."'> ".($i+1)." </a>";
// иначе просто выводим номер страницы - данная строка необязательна,
// пропустив ее вы просто получите линк на текущую страницу 
    else echo $i+1; // если page_number - текущая страница - ничего не выводим (ссылку не делаем)
  }
?>
Таким образом, на экране браузера мы получили что-то вроде "1 2 3 4 5 6 7 8", при этом URL (на моем компьютере, при выбранной третьей "странице") выглядит так: http://localhost/ep/ep.php?from=20. Обратите внимание, на то, что странице под номером "3" соответствует значение from=20 то есть отсчет выводимых статей будет вестись в данном случае с 20-й.

Вообще, как вы уже поняли, переменная $from играет здесь ключевую роль. Она участвует в построении ссылок на каждую отдельную страницу (если, конечно, можно так выразиться :), и самое главное - дает нам точку отсчета для вывода статей. Например (и наверняка вы сделаете именно так) указатели на статьи (или сами статьи ;) можно поместить в массив, с последующей выборкой и выводом в браузер по 10 статей, начиная от значения $from.

То есть еще раз иными словами: весь огород собственно и городился ради того, чтобы дать скрипту данные относительно того на какой "странице" сейчас находится посетитель и начиная с какого номера "статьи" следует вывести заданное количество этих статей на страницу - а это и есть значение переменной $from. Т.е. при $from=20 выведутся страницы с 21 по 30 (это также зависит от реализации вывода и значения переменной $articles_per_page)

Вот и все - предисловие длиннее чем код :) А в Жизни всегда так - прелюдия гораздо длиннее чем финал ;)

проекты автора
раскрутка сайта - реклама в интернете - статьи
философия жизни и рекламы в интернете
экстремальная раскрутка сайта - услуги


Автор: Духанин Роман as RWinnerДата публикации: 25.07.2003
Рейтинг статьи: [3.17] рейтинг статьи: 3.17рейтинг статьи: 3.17рейтинг статьи: 3.17 [голосов: 18]Кол-во просмотров: 9072
Оценить статью:  

Комментарии читателей:


Сообщение №268 Алексей Петюшкинhttp://www.alpet.spb.ru/ в новом окне26.07.2003 1:57:31
А при чем здесь "спец по раскрутке"? И потом: ночные мытарства каждого из нас должны волновать только нас самих и никого больше. Много воздуха, высоких красивых слов, один листинг - а по сути ничего ценного. И стоило ли над этим мучиться всю ночь?...
Сообщение №275 В 04.08.2003 2:49:27
а мне очень понравилось! не обращайте внимание на снобов типа алеши петюшкина, они делают жизнь такой скучной!
так что статья ок! и интересная
Сообщение №276 Unseen 05.08.2003 16:40:22
Интересна реализация навигации внутри статьи. Т.е. есть большая статья состоящая скажем из 2-3 отельных страничек (.htm) И вот внутри них сделать переходы. Не пробовали? При этом опять же без SQL. И при этом скрипт должен быть универсальным, т.е. не цепляться к названию файлов... разве что только к цифре которую можно вставлять таким образом my_page_1, my_page2_1.htm и т.д. Было бы интересно почитать про реализацию подобной навигации.
Сообщение №282 Midka 02.09.2003 20:16:13
а по-моему так намного интереснее читать, чем просто сухой и голый код ;) Да и просто охота человеку поделиться своими переживаниями.
RWinner, спасибо :)
Сообщение №301 Peter Finkelshteinhttp://sitemaker.ru в новом окне07.11.2003 17:37:21
Всегда приятно видеть человека который учиться сам. :) Кстати написано прикольно.

» Читать все комментарии...

Ваши комментарии:

Ваше имя:*
Ваш E-mail:
Ваш URL:
HTML запрещен
BB Код разрешен


Ваше сообщение:*
* - обязательные поля для заполнения

Внимание!
Перед появлением сообщения на сайте, оно пройдет премодерацию.

Поиск по сайту:

Последние статьи:
Работа с WDDX в РНР Работа с WDDX в РНР
Транслитерация и детранслитерация на РНР Транслитерация и детранслитерация на РНР
Создаем PHP отладчик своими руками. Часть 2 Создаем PHP отладчик своими руками. Часть 2
Создаем PHP отладчик своими руками. Часть 1 Создаем PHP отладчик своими руками. Часть 1
Введение в регулярные выражения Введение в регулярные выражения
» архив всех статей
Схожая тематика:
:: Perl/CGI
:: ASP
:: JavaScript и VBScript
Рассылка новостей:

подписаться
отказаться


Академия веб мастеринга и веб дизайна. Разработка сайта, вёрстка сайта, веб программирование, продвижение ресурса, инструментарий и другие темы, посвященные разработке ресурсов в сети Интернет. Форум для веб мастера.


карта сервера :: форум :: профайл :: авторам :: о сайтеНаверх
Rambler's Top100Rambler's Top100 Valid HTML 4.01!Каталог-Молдова - Ranker, Statistics © 2000-2010 Все права защищены
страница создана за 0.138 секунд
На главную страницуHosted by Host-MD 
Developed by SiteMaker