Бетонные и железобетонные работы. Укладка и уплотнение бетонной смеси

  • Джентльменский набор современного карпятника Теперь поговорим о снастях более подробно, и начнем, естественно, с удилищ. Каким требованиям должно отвечать современное карповое удилище

  • Карповые грузила Вместо того чтобы придавать ему маскировочные формы и окраски, необходимо обратить внимание скорее на важнейшие задачи грузила: оно служит в первую очередь для того, чтобы опускать оснастку и приманку на дно и удерживать их там в нужном месте.

  • Катушка для дальнего заброса Безынерционные катушки открытого типа максимально обеспечивают необходимую дальность и точность заброса легких оснасток, имеют большую скорость подмотки, а точно отцентрированный фрикционный тормоз позволяет применять для ловли тонкие лески.

  • Описание карповой снасти "Комбайн" Сама снасть по принципу действия практически не отличается от карповой пружины, но, на мой взгляд, имеет некоторые преимущества.

  • Английский метод Кормушка Method-Feeder относится к типу Inline Feeder, то есть ее нанизывают на основную леску. Три пластиковых крыла образуют скелет, вокруг которого обминают шар прикормки, как вокруг самой обычной прикормочной спирали.

  • Без труда не вынешь карпа из пруда В этот момент его можно эффективно ловить с поверхности, но это тема отдельного разговора. Знание этих общих закономерностей имеет значение лишь тогда, когда сам карп никак не выказывает своего присутствия.

  • Дедовские методы ловли карпа На самых разных водоемах летом карп ловится на, так называемые, «макушатники» . Этому способу ловли я учился у деда Андрея много лет назад.

  • Короткие вылазки за карпом Поздней осенью карп не имеет привычки показываться явно. Его могут выдавать круги, расходящиеся по воде, либо показавшаяся на секунду спина или плавник, и если вам показалось, что вы чтото увидели, - забросьте туда наживку.

  • Крупные карпы из реки Летом эти рыбы распределяются по всей реке, осенью же держатся в более глубоких зонах. Если знаешь, где находятся такие участки, обязательно будешь с рыбой.

  • Ловля карпа среди коряг и водорослей Карп всегда посещает затопленные заросли. Создается впечатление, что он получает удовольствие от ощущения безопасности и использует эти места в качестве пути к отступлению, где он может спрятаться подальше от рыбацкого прессинга.

  • На "макушатник" Ловля на "макушняк" в первую очередь рассчитана на поимку крупного карпа. Кроме карпа попадаются толстолобик, белый амур, карась и лещ. В качестве насадки зачастую применяются брусочки макухи величиной со спичечный коробок.

  • Нестандартный подход к дикому карпу Классическая карповая ловля предполагает первоначальное приманивание рыбы, а потом удерживание ее в одной точке средней и крупной фракциями прикормочной смеси.

  • Поплавочная ловля - прикармливание, вываживание, общие советы Итак, ключ к секрету правильного прикармливания - постоянное добавление небольших порций прикормки.

  • Путь к трофейному карпу Привлечь карпа – это сделать так, чтобы он обязательно пришел на тот участок водоема, где находится ваша насадка. Это намного труднее, нежели накормить карпа в рыбхозе.

  • Современная спортивная ловля карпа А вот внутри самой методики в ее сути и тонкостях действительно заложен целый ряд секретов и оригинальных решений, превративших современную карповую ловлю в настоящую школу рыбацкого мастерства со своей богатой историей, традицией и тенденциями.

  • Урок карпфишинга Но в каждом регионе найдется немало водоемов, где когда-то разводили карпа, а потом делать это перестали. Основную массу рыбы с годами сильно выбили, и в водоеме остались те немногочисленные экземпляры, которые набрались опыта и просто так не даются.

  • Три стратегии для ловли карпов Тот, кто ищет быстрого успеха и не намеревается ловить непременно крупных рыб, должен пользоваться зерновой прикормкой. Если же хотят ловить длительное время, то бойлы стандартного размера окажутся лучшим выбором. Для целенаправленной же ловли крупных рыб, видимо, стоит прикармливать крупными бойлами, которые отсекают мелких карпов и «белую» рыбу.

  • Постоянное вываживание Даже при высокой плотности рыб на карподроме рыбалка в этих водомах порой является настоящим вызовом рыболову, когда рыбы почему-то не хотят клевать. В этом случае нужно экспериментировать с приманками.

  • Только крупные карпы Обильная прикормка является ключом к успеху. Когда есть возможность на знакомом водоеме регулярно прикармливать рыбу, появляются хорошие шансы поймать действительно крупный экземпляр.

  • Успешная ловля трофейных карпов Чтобы сделать рыбалку более успешной, в последние годы были разработаны маленькие, заметные бойлы Fluoro-Pop Ups. Они хорошо различимы в воде, и их аромат пробуждает любопытство карпов.

  • Ловля карпа на сбросе теплой воды Теплая вода здесь перемешивается с холодной, образуя полосу термобара. Это и есть идеальная зона для ловли любой рыбы, в том числе и карпа. На таких участках рыба часто питается даже зимой, так как температура воды оказывает влияние на кормовую активность.

  • Лакомая бомба «Белая» рыба для многих «карпятников» как бельмо на глазу. Однако Грегору Брадлеру эти надоедливые создания в месте ловли не мешают. Он ловит с помощью прикормочной бомбы, которая привлекает лещей, плотву, а потом целенаправленно и карпов

  • Поверхностная ловля карпа Очень медленно карп выплывает из укрытия и направляется к плывущим по воде кусочкам хлеба. Через поляризационные очки он хорошо виден. Нервы рыболова напряжены до предела в момент, когда рыба направляется к приманке.

  • Соблазненный на мелководье Нужно ли делать дальние забросы при ловле крупного карпа? Ведь карпы питаются и на очень мелкой воде. Нильс Рентмайстер рассказывает, как ловить усатых рыб у самого берега.

  • Сезон без конца Так как и теперь можно с успехом ловить крупных карпов. Речь не идет о ловле в местах стока теплой воды у ГЭС, которые имеются на крупных и средних реках.

  • Ловля карпа осенью Осень дает многие преимущества. Если летом приходится делить водоем с отдыхающими и шумящими на его берегах людьми, которые каждое удобное местечко превращают в бессонную и одновременно безрыбную ночь, то осенью можно предаваться своей страсти довольно беспрепятственно и полностью сконцентрировать внимание на ловле трофейного карпа.

  • Крупные карпы из травы Карповая рыбалка летом далеко не проста. С одной стороны, рыбы из-за высокой температуры воды активны, а потому голодны. С другой – в теплое время года на многих водоемах приходится сталкиваться с большой проблемой. Как только вода прогревается, водные растения начинают бурно расти и значительные участки озера становятся непригодными для рыбалки.
  • /* 09.07.2008 */

    Постраничный вывод (PHP и MySQL)

    Довольно часто на сайте возникает необходимость в отображении большого объема однотипной информации, при этом, для удобства восприятия, её следует разбивать на части, т.е. реализовать постраничный просмотр этой информации. Данное решение используется поисковыми системами при отображении результатов поиска, форумами, досками объявлений и т.д. Данная статья описывает то, как используя MySQL и PHP реализовать постраничный вывод.

    Для начала отмечу, что статья не учит работе с базой данных и PHP, а даёт объяснение реализации, и приводит готовый к использованию (постраничной навигации).

    Начнем! Допустим имеется база данных (MySQL), например, с объявлениями. Нам нужно реализовать их отображение на сайте, порциями по 20 штук на странице. Для перехода же между порциями в нижней части каждой страницы необходимо сформировать ссылки с номерами «порций» (ярлыки страниц):

    Поехали...

    Выборка данных порциями

    Для выборки ВСЕХ объявлений из базы требуется запрос вида:

    SELECT * FROM table1

    Конечно, это упрощенный вариант, и в реальных задачах, чаще всего, в запросе присутствуют различные условия (операторы WHERE , ORDER BY ...).

    Для того чтобы этот запрос делал выборки порциями, необходимо к нему добавить оператор LIMIT :

    Синтаксис оператора LIMIT: LIMIT row_count

    Необязательный параметр offset сообщает сколько рядов от начала выборки нужно пропустить, а row_count указывает сколько рядов нужно выбрать, т.е. LIMIT 0, 20 (или просто LIMIT 20 опустив нулевой offset ) выбирает первые 20 рядов (с 0 по 19 ряд), а LIMIT 40, 20 указывает пропустить 40 (с 0 по 39 ряд) и выбрать следующие 20 (т.е. будут выбраны ряды с номера 40 по 59).

    Обращаю ваше внимание, что ряды в выборке нумеруются с нуля, а не с единицы.

    Таким образом запросы для нашего примера с объявлениями будут следующими:

    #запрос для выборки страницы 1: SELECT * FROM table1 LIMIT 0, 20 #запрос для выборки страницы 2: SELECT * FROM table1 LIMIT 20, 20 #запрос для выборки страницы 3: SELECT * FROM table1 LIMIT 40, 20

    и.т.д. offset увеличиваем на 20 для каждой следующей страницы, а row_count всегда равен 20.

    Ещё необходимо отметить, что оператор LIMIT в запросе идет по порядку после WHERE , GROUP BY , HAVING , ORDER BY , но если вы новичок в MySQL, то можно сказать, что он идет в конце строки запроса (после него идут операторы довольно редко используемые).

    Вторая часть с которой нам нужно разобраться это строка с ярлыками страниц...

    Ярлыки страниц

    Например, для выборки третьей двадцатки объявлений ярлык может иметь следующий вид:

    страница №3

    При клике по этой ссылке запускается скрипт obyavleniya.php, которому доступен параметр page_number, сообщающий, что запрашивается 3 двадцатка объявлений - 3 страница. Скрипт пропускает первые 40 объявлений, и выбирает следующие 20.

    Для вывода этой строки ярлыков требуется знать общее число страниц (чтобы знать сколько ярлыков "рисовать"). Его мы можем получить, разделив общее число объявлений на количество объявлений на странице, округлив результат до большего целого. Т.е., если в нашем примере, допустим, всего 107 объявлений, а выводим мы их на каждой странице по 20 штук, то число страниц будет: 107 / 20 = 5.35, т.е. 5 полных страниц (по 20 объявлений) + одна неполная (7 объявлений), итого, округлив получаем 6 страниц (соответственно будет 6 ярлыков).

    Для подсчета общего числа объявлений, есть два пути. Первый путь - выполнить отдельный суммирующий запрос практически аналогичного запросу для выборки данных, только без ограничивающего оператора LIMIT , и ненужных операций сортировки (ORDER BY), например:

    #запрос для выборки объявлений 3 страницы SELECT * FROM table1 WHERE category_id="89" AND ... ORDER BY publish_date DESC LIMIT 40, 20 #запрос для подсчета ВСЕХ объявлений в базе SELECT COUNT(*) FROM table1 WHERE category_id="89" AND ...

    Первый запрос выполняет выборку объявлений, а второй, подсчитывает их общее число функцией COUNT . На практике запросы выборки данных бывают весьма громоздкими и тяжелыми, поэтому дополнительный тяжелый запрос для подсчета не самая «необходимая» операция. Так же этот путь не такой изящный как второй...

    В MySQL 4.0.0 появились замечательные вещи, такие как функция FOUND_ROWS и связанная с ней SQL_CALC_FOUND_ROWS - опция оператора SELECT .

    Рассмотрим второй вариант подсчета общего числа рядов:

    SELECT SQL_CALC_FOUND_ROWS * FROM table1 WHERE category_id="89" AND ... ORDER BY publish_date DESC LIMIT 40, 20 SELECT FOUND_ROWS()

    Опять же, первый запрос делает выборку объявлений, а второй получает их общее число, но...

    Запрос выборки объявлений в данном случае отличается от выборки из первого варианта только наличием опции SQL_CALC_FOUND_ROWS . Данная опция указывает MySQL вместе с выборкой данных сделать и подсчёт всех тех строк которые бы вернул запрос без оператора LIMIT . Т.е. по сути данный запрос включает в себя в скрытом виде COUNT запрос из первого варианта. При этом сама подсчитанная сумма не возвращается, а запоминается сервером. Теперь, для того чтобы узнать это число, нужно выполнить запрос с функцией FOUND_ROWS (при этом сервер не производит никаких вычислений, просто отдает то, что запомнил раньше).

    Второй вариант однозначно выглядит более элегантным, а также может обеспечить некоторый выигрыш по скорости.

    Собираем все вместе

    Теперь вы знаете все что нужно, и я могу привести алгоритм описывающий логику скрипта obyavleniya.php для постраничной разбивки, который запускается при заходе пользователя на страницу объявлений...

    1. первым делом при запуске скрипта смотрим какую страницу запрашивает пользователь (в нашем примере на это указывает параметр page_number);
    2. на основании номера запрашиваемой страницы вычисляем параметр offset оператора LIMIT ;
    3. запускаем запрос выборки объявлений с оператором LIMIT offset, 20 (где, 20 - это количество отображаемых объявлений на странице в нашем примере);
    4. получаем общее число объявлений в базе;
    5. на основании пункта 4 вычисляем общее число страниц объявлений и формируем строку ярлыков.

    Вот собственно и всё. Теперь, я надеюсь, вы сможете написать свой скрипт, или воспользоваться моим, понимая суть того как он работает.

    PHP класс Paging для постраничной разбивки

    Теперь я приведу пример как организуется постраничная навигация с использованием PHP-класса Paging .

    //подключаем класс Paging require("paging.inc.php "); //соединяемся с базой данных $_DB = new mysqli($host,$user,$passwd,$db_name); //создаем экземпляр класса Paging //в качестве параметра передаем ему указатель на соединение с MySQL $_PAGING = new Paging($_DB); //выполняем обычный запрос данных не заботясь //о разбивке на страницы через метод get_page объекта класса Paging $r = $_PAGING->get_page("SELECT * FROM table1"); while($row = $r->fetch_assoc()) { //обрабатываем КАК ОБЫЧНО полученные из базы данные и выводим пользователю } //выводим информационную строку вида: "Показано с 1 по 20 из 107" echo $_PAGING->get_result_text()." объявлений"; //выводим ссылки-ярлыки на предыдущую и следующую страницы echo "Страницы: ".$_PAGING->get_prev_page_link()." ".$_PAGING->get_next_page_link()."

    "; //а также строку с номерами страниц (основные ярлыки) echo $_PAGING->get_page_links(); ?>

    Единственное чем данный скрипт отличается от обычного скрипта без постраничной разбивки, так это тем, что запрос выборки данных которые нужно разделить на части производится не через mysqli->query() , а через метод get_page() реализованный в классе Paging, а так же тремя последними строками которые отображают ярлыки и строку отчет о выборке.

    Постскриптум

    P.S.: Этот постскриптум я привожу скорее для полноты изложения, нежели как реально актуальную информацию для большинства читателей.

    Применение SQL_CALC_FOUND_ROWS и FOUND_ROWS() имеет некоторые подводные камни при использовании в UNION-запросах, так как операторы LIMIT могут использоваться в нескольких местах, и могут касаться как отдельных операторов SELECT в составе UNION, так и общего результата UNION в целом. Цель же SQL_CALC_FOUND_ROWS для UNION состоит в подсчёте количества строк, которые будут возвращены без глобального LIMIT . Поэтому следует привести условия применения SQL_CALC_FOUND_ROWS с запросами UNION:

    • Ключевое слово SQL_CALC_FOUND_ROWS должно указываться в первом операторе SELECT ;
    • Значение FOUND_ROWS() будет точным только при условии применения UNION ALL . Если указано UNION без ALL , происходит исключение дубликатов, и значение FOUND_ROWS() будет лишь приблизительным;
    • Если в UNION не присутствует LIMIT , то SQL_CALC_FOUND_ROWS игнорируется и возвращается количество строк во временной таблице, которая создается для выполнения UNION .
    Neversmile Neversmile

    Neversmile - альтернативная рок-группа из России .

    История

    Группа Neversmile была основана в Волгограде под первоначальным названием ЭдвардРукиНожницы, но для продолжения карьеры её участники переехали в Санкт-Петербург , где и началась музыкальная история коллектива.

    Официальной датой рождения считается 1 апреля 2005 года. Именно в этот день четверо молодых людей впервые вместе отыграли 4 песни на сцене небольшого питерского клуба «Пятница». Весна и лето того года пролетели за шлифованием материала, который весной 2006 года лег в основу дебютного мини-альбома группы «Миллиарды Минут». До записи первой пластинки Neversmile играли лишь эпизодически, закаляясь в клубных солянках и участвуя в крупных концертах, разогревая более маститые команды.

    Ситуация в корне изменилась, когда первый тираж записи EP «Миллиарды Минут» стал активно исчезать с прилавков музыкальных магазинов, а видео на песни «Миллиарды минут» и «Без Мира» стали одними из самых заказываемых на телеканале А1, весной 2006 года. В свой первый «Total Mosh Tour» группа отыграла 15 полноценных концертов по всей стране. После ряда выступлений, группа приступила к записи полноформатного альбома, проведя за этим занятием лето 2006 года, не прибегая к помощи продюсеров и менеджеров.

    Целый год после выпуска первого полноформатника парни провели в непрерывных гастролях, выступая с концертами во многих регионах России (включая Сибирь, Урал, Республику Коми), а также на Украине, в Белоруссии, Эстонии и Латвии. Концертная деятельность повлекла за собой активный интерес СМИ и крупных музыкальных лейблов. Интервью, статьи и просто упоминания о Neversmile печатаются в журналах Bravo, Ровесник, Night Out, DFMO.Net, Factory 52, группа участвует в интервью и программах для телеканалов (MTV, Столица, НТВ, ТНТ, А1, О2tv, Enter и др.) и радиостанций (Наше Радио, Maximum, Общественное Российское Радио).

    В 2006 году Neversmile получили приз от ресурса Punkgazetka как «Открытие Года». В 2007 году группа стала лауреатом такой же номинации, но уже по версии телеканала А1 , на ежегодно проводимом им фестивале RAMP . Наше Радио и радио Maximum приглашали коллектив участвовать в фестивалях «Наши в городе-6» и «Нашествие 2007» и pre-party к фестивалю «Maxidrom 2007». В июне того же года Neversmile открывают концерт популярной американской панк-группы Aiden . Весной 2007 года песня «Из Ладони в ладонь» вошла в официальный саундтрек сериала «Любовь не шоу-бизнес», транслировавшегося на телеканале Муз-ТВ летом-осенью.

    В сентябре 2007 Neversmile выпускают сингл «Плачь, детка!» и отправляются в полуторомесячный тур в его поддержку. Вернувшись в Санкт-Петербург, группа репетирует накопившийся материал и играет небольшие концерты. Работа ведется на питерской студии Добролет . Новый альбом получил название «Глянец и пластик, виват!». Тексты нового альбома повествуют о загрязнении планеты, проблемах ядерного оружия, безразличии современного человека, живущего в мире безликих глянцевых журналов, обществе потребления и многих других проблемах. В феврале 2008 года коллектив отправляется в «Глянец и пластик, виват!» тур, который продлился до июля и охватил более 60 городов СНГ и Прибалтики.

    Neversmile имеет дружеские контракты с некоторыми магазинами молодёжной одежды, является одним из главных партнеров питерского отделения всемирного известного производителя кед, фирмы Converse, а с февраля 2008 года также является лицом американского бренда молодёжной одежды Glamour Kills в России.

    20 декабря 2008 года группа на своем официальном сайте анонсировала выход сингла «Любой ценой ». Песня «Любой ценой» не вошла во второй номерной альбом Neversmile «Глянец и пластик, виват! ». Пластинка выпущена на CD крупнейшим российским лейблом DF Music Organization . С 18 февраля 2009 года сингл доступен для бесплатного скачивания на сайте лейбла.

    В августе 2009 года группа прекратила свою деятельность. Об этом в своем блоге написал гитарист группы Камиль Шараподинов: «Группа взяла творческий отпуск на неопределенный срок. мы не планируем играть концертов в ближайший год-два-двадцать два. в общем планов нет абсолютно никаких. Никто ни с кем не ссорился, группа не распалась. Просто нам так захотелось».

    Творческий отпуск перешёл в распад, и летом 2010 на странице группы ВКонтакте появилось сообщение об окончательном прекращении деятельности.

    Дискография

    Студийные альбомы

    • Neversmile ()
    • Глянец и пластик, виват! ()

    EP

    • «Миллиарды минут » ()

    Синглы

    • «Плачь, детка! » ()
    • «Любой ценой » ()

    Сборники

    Видеография

    • Миллиарды минут (март 2006)
    • Без мира (май 2006)
    • Последняя запись в её дневнике (сентябрь 2006)
    • Пока смерть не избавит нас друг от друга (декабрь 2006)
    • Если небо (август 2007)
    • Плачь, детка! (август 2007)
    • Всех влюбленных (сентябрь 2007)
    • Эпическая (октябрь 2008)
    • Пой Мне (февраль 2010)

    Напишите отзыв о статье "Neversmile"

    Ссылки

    Примечания

    Отрывок, характеризующий Neversmile

    Деятельность его в Москве так же изумительна и гениальна, как и везде. Приказания за приказаниями и планы за планами исходят из него со времени его вступления в Москву и до выхода из нее. Отсутствие жителей и депутации и самый пожар Москвы не смущают его. Он не упускает из виду ни блага своей армии, ни действий неприятеля, ни блага народов России, ни управления долами Парижа, ни дипломатических соображений о предстоящих условиях мира.

    В военном отношении, тотчас по вступлении в Москву, Наполеон строго приказывает генералу Себастиани следить за движениями русской армии, рассылает корпуса по разным дорогам и Мюрату приказывает найти Кутузова. Потом он старательно распоряжается об укреплении Кремля; потом делает гениальный план будущей кампании по всей карте России. В отношении дипломатическом, Наполеон призывает к себе ограбленного и оборванного капитана Яковлева, не знающего, как выбраться из Москвы, подробно излагает ему всю свою политику и свое великодушие и, написав письмо к императору Александру, в котором он считает своим долгом сообщить своему другу и брату, что Растопчин дурно распорядился в Москве, он отправляет Яковлева в Петербург. Изложив так же подробно свои виды и великодушие перед Тутолминым, он и этого старичка отправляет в Петербург для переговоров.
    В отношении юридическом, тотчас же после пожаров, велено найти виновных и казнить их. И злодей Растопчин наказан тем, что велено сжечь его дома.
    В отношении административном, Москве дарована конституция, учрежден муниципалитет и обнародовано следующее:
    «Жители Москвы!
    Несчастия ваши жестоки, но его величество император и король хочет прекратить течение оных. Страшные примеры вас научили, каким образом он наказывает непослушание и преступление. Строгие меры взяты, чтобы прекратить беспорядок и возвратить общую безопасность. Отеческая администрация, избранная из самих вас, составлять будет ваш муниципалитет или градское правление. Оное будет пещись об вас, об ваших нуждах, об вашей пользе. Члены оного отличаются красною лентою, которую будут носить через плечо, а градской голова будет иметь сверх оного белый пояс. Но, исключая время должности их, они будут иметь только красную ленту вокруг левой руки.
    Городовая полиция учреждена по прежнему положению, а чрез ее деятельность уже лучший существует порядок. Правительство назначило двух генеральных комиссаров, или полицмейстеров, и двадцать комиссаров, или частных приставов, поставленных во всех частях города. Вы их узнаете по белой ленте, которую будут они носить вокруг левой руки. Некоторые церкви разного исповедания открыты, и в них беспрепятственно отправляется божественная служба. Ваши сограждане возвращаются ежедневно в свои жилища, и даны приказы, чтобы они в них находили помощь и покровительство, следуемые несчастию. Сии суть средства, которые правительство употребило, чтобы возвратить порядок и облегчить ваше положение; но, чтобы достигнуть до того, нужно, чтобы вы с ним соединили ваши старания, чтобы забыли, если можно, ваши несчастия, которые претерпели, предались надежде не столь жестокой судьбы, были уверены, что неизбежимая и постыдная смерть ожидает тех, кои дерзнут на ваши особы и оставшиеся ваши имущества, а напоследок и не сомневались, что оные будут сохранены, ибо такая есть воля величайшего и справедливейшего из всех монархов. Солдаты и жители, какой бы вы нации ни были! Восстановите публичное доверие, источник счастия государства, живите, как братья, дайте взаимно друг другу помощь и покровительство, соединитесь, чтоб опровергнуть намерения зломыслящих, повинуйтесь воинским и гражданским начальствам, и скоро ваши слезы течь перестанут».
    В отношении продовольствия войска, Наполеон предписал всем войскам поочередно ходить в Москву a la maraude [мародерствовать] для заготовления себе провианта, так, чтобы таким образом армия была обеспечена на будущее время.
    В отношении религиозном, Наполеон приказал ramener les popes [привести назад попов] и возобновить служение в церквах.
    В торговом отношении и для продовольствия армии было развешено везде следующее:
    Провозглашение
    «Вы, спокойные московские жители, мастеровые и рабочие люди, которых несчастия удалили из города, и вы, рассеянные земледельцы, которых неосновательный страх еще задерживает в полях, слушайте! Тишина возвращается в сию столицу, и порядок в ней восстановляется. Ваши земляки выходят смело из своих убежищ, видя, что их уважают. Всякое насильствие, учиненное против их и их собственности, немедленно наказывается. Его величество император и король их покровительствует и между вами никого не почитает за своих неприятелей, кроме тех, кои ослушиваются его повелениям. Он хочет прекратить ваши несчастия и возвратить вас вашим дворам и вашим семействам. Соответствуйте ж его благотворительным намерениям и приходите к нам без всякой опасности. Жители! Возвращайтесь с доверием в ваши жилища: вы скоро найдете способы удовлетворить вашим нуждам! Ремесленники и трудолюбивые мастеровые! Приходите обратно к вашим рукодельям: домы, лавки, охранительные караулы вас ожидают, а за вашу работу получите должную вам плату! И вы, наконец, крестьяне, выходите из лесов, где от ужаса скрылись, возвращайтесь без страха в ваши избы, в точном уверении, что найдете защищение. Лабазы учреждены в городе, куда крестьяне могут привозить излишние свои запасы и земельные растения. Правительство приняло следующие меры, чтоб обеспечить им свободную продажу: 1) Считая от сего числа, крестьяне, земледельцы и живущие в окрестностях Москвы могут без всякой опасности привозить в город свои припасы, какого бы роду ни были, в двух назначенных лабазах, то есть на Моховую и в Охотный ряд. 2) Оные продовольствия будут покупаться у них по такой цене, на какую покупатель и продавец согласятся между собою; но если продавец не получит требуемую им справедливую цену, то волен будет повезти их обратно в свою деревню, в чем никто ему ни под каким видом препятствовать не может. 3) Каждое воскресенье и середа назначены еженедельно для больших торговых дней; почему достаточное число войск будет расставлено по вторникам и субботам на всех больших дорогах, в таком расстоянии от города, чтоб защищать те обозы. 4) Таковые ж меры будут взяты, чтоб на возвратном пути крестьянам с их повозками и лошадьми не последовало препятствия. 5) Немедленно средства употреблены будут для восстановления обыкновенных торгов. Жители города и деревень, и вы, работники и мастеровые, какой бы вы нации ни были! Вас взывают исполнять отеческие намерения его величества императора и короля и способствовать с ним к общему благополучию. Несите к его стопам почтение и доверие и не медлите соединиться с нами!»

    Проблема реализации постраничной навигации часто встает перед начинающими PHP-программистами. К разбиению объёмного текста на отдельные страницы прибегают во многих Web-приложениях от гостевых книг и форумов до различных каталогов. Давайте
    решим эту проблему.
    Итак, что нам требуется для реализации постраничной навигации? Для примера возьмем гостевую книгу, содержащую несколько сотен сообщений, в которой требуется выводить на страницу Х сообщений.
    Рассмотрим задачу более конкретно. Сообщения пользователей хранятся в базе данных post со следующей структурой:

    • id – номер сообщения,
    • text – тело сообщения,
    • name – имя автора,
    • time – время создания.

    В итоге нам надо получить вывод Х сообщений на страницу, а также организовать удобную навигацию, например, такую:

    << < ..2|3|4|5|6.. > >>

    где 4 - текущая станица. Для того чтобы отслеживать текущую страницу, будем использовать параметр page , передаваемый через URL. К примеру:

    Www.myserver.com/index.php?page=X.

    Здесь X - номер станицы (для примера, пусть Х будет равно 25).

    Теперь, после этого небольшого введения, можно приступать к непосредственной реализации.

    // Устанавливаем соединение с базой данных
    include "config.php" ;
    // Переменная хранит число сообщений выводимых на станице
    $num = 25 ;
    // Извлекаем из URL текущую страницу
    $page = $_GET [ "page" ];
    // Определяем общее число сообщений в базе данных
    $result = mysql_query ("SELECT COUNT(*) FROM post" );
    $posts = mysql_result ($result , 0 );
    // Находим общее число страниц
    $total = intval (($posts - 1 ) / $num ) + 1 ;
    // Определяем начало сообщений для текущей страницы
    $page = intval ($page );
    // Если значение $page меньше единицы или отрицательно
    // переходим на первую страницу
    // А если слишком большое, то переходим на последнюю
    if(empty($page ) or $page < 0 ) $page = 1 ;
    if($page > $total ) $page = $total ;
    // Вычисляем начиная к какого номера
    // следует выводить сообщения
    $start = $page * $num - $num ;
    // Выбираем $num сообщений начиная с номера $start
    $result = mysql_query ("SELECT * FROM post LIMIT $start , $num " );
    // В цикле переносим результаты запроса в массив $postrow
    while ($postrow = mysql_fetch_array ($result ))
    ?>

    На этом первая часть закончена. Двумерный массив postrow хранит все поля таблицы post, необходимые для отображения станицы. Вот пример как можно организовать вывод сообщений.

    echo "

    " ;
    for($i = 0 ; $i < $num ; $i ++)
    {
    echo "


    " ;
    }
    echo "
    " . $postrow [ $i ][ "name" ]. " " . $postrow [ $i ][ "time" ]. "
    " . $postrow [ $i ][ "text" ]. "
    " ;
    ?>

    Теперь надо организовать навигацию. Формируем составляющие будущей навигации.
    Коды стрелки «в начало» и «назад» поместим в одну переменную, также поступим и со стрелками «в конец» и «вперед».

    // Проверяем нужны ли стрелки назад
    if ($page != 1 ) $pervpage = "<<
    . ($page - 1 ) . ">< " ;
    // Проверяем нужны ли стрелки вперед
    if ($page != $total ) $nextpage = " ">>
    . $total . ">>>" ;

    // Находим две ближайшие станицы с обоих краев, если они есть
    if($page - 2 > 0 ) $page2left = " " . ($page - 2 ) . " | " ;
    if($page - 1 > 0 ) $page1left = "" . ($page - 1 ) . " | " ;
    if($page + 2 <= $total ) $page2right = " | " . ($page + 2 ) . "" ;
    if($page + 1 <= $total ) $page1right = " | " . ($page + 1 ) . "" ;

    // Вывод меню
    echo $pervpage . $page2left . $page1left . "" . $page . "" . $page1right . $page2right . $nextpage ;