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

Ќиже вы можете посмотреть наш прайслист на лечение зубов в нашей стоматологии.

Ќочные мытарства спеца по раскрутке, или постраничный вывод контента в браузер на примере PHP проекты автора 2003-07-26
јвтор: ƒуханин –оман www winner —траницы: [1]

ѕоловина второго ночи, несколько дней недосыпа... » вдруг озарение - наконец-то € пон€л, какой-такой супер-пупер скрипт мне нужен дл€ раскрутки моего нового сайта. —казано - сделано, сажусь... нет не писать этот супер-пупер скрипт :) ѕрограммисты народ ленивый, спецы по раскрутке тем более (отсюда и баннерообменные сети, авторегистраторы в каталогах и пр. лент€йские штучки). ¬ общем лезу на 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 (на моем компьютере, при выбранной третьей "странице") выгл€дит так: https://localhost/ep/ep.php?from=20. ќбратите внимание, на то, что странице под номером "3" соответствует значение from=20 то есть отсчет выводимых статей будет вестись в данном случае с 20-й.

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

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

¬от и все - предисловие длиннее чем код :) ј в ∆изни всегда так - прелюди€ гораздо длиннее чем финал ;)

ƒуханин –оман as RWinner winner@2winners.com

RWinnerЃ все права сохранены© ƒопускаетс€ свободное копирование и публикаци€ данной статьи при условии отсутстви€ купюр и с сохранением структуры гиперссылок. ј если по простому, то при перепечатке линки на мои сайты вверху страницы Ќ≈ ¬џ–≈«ј“№ и Ќ≈ ѕ≈–≈ћ≈ўј“№ вниз по тексту (например в footer). ƒанный копирайт, также, необходимо оставить



јвтор: ƒуханин –оман
https://www.2winners.com/



ѕри перепечатке информации делайте, пожалуйста, ссылку на наш сайт (либо поделитьс€ вконтакте, гугл+ или делитесь в одноклассниках статьЄй). —пасибо!

»сточник: www.wr-script.ru©, 2004-2023г.

ƒелитесь с друзь€ми в соцсет€х. јктивные комментаторы получают свежие скрипты и бесплатные доработки от WR-Script.ru!

¬ернутьс€ к стать€м помощи WEB-мастеру

WR-–°—З—С—В—З–Є–Ї