Опишите пожалуйста алгоритм скрипта, который мог бы создавать новую страницу с новостями, если на старой уже набралось определенное кол-во.
Копай в сторону "постраничная навигация". Таких скриптов много. Вот, например, http://www.softtime.ru/info/articlephp. ... article=33. Только он немного "того", там есть небольшая ошибка, будешь использовать - обьясню как прикрутить.
1. Получаем количество всех новостей в базе (запросом). 2. Небольшая обработка динамически изменяемых переменных $start и $limit в зависимости от того какая сейчас страница активна ($page = 3, например). 3. Запрос на вывод нужных нам 10 новостей (или сколько там нужно) в виде SELECT * FROM `news` ORDER BY `id` DESC LIMIT $start, $limit 4. Построение меню для навигации (Первая - 1 2 3 ... Последняя). Так легче?)) Тут объяснять больше займет чем сам код написать.
Всего страниц внизу - это общее количество записей, деленное на количество записей на страницу. Обозначив их математическими переменными получим: t = всего записей (например 110) w = записей на одну страницу (например 10) Всего страниц внизу = t / w (110 / 10 = 11) С какой страницы выбирать контент? Читаем массив _GET, заранее передав в нем страничку. Например - $_GET['page'] Итого, если у нас третья страница, а записей на страницу 10, то мы должны вывести записи начиная с 20-ой и выбрать 10, так? Так. Соответственно - текущая страница, умноженная на кол-во записей на страницу. Но тут неувязочка - если страница 1, то 10*1=10, и выбрана будет 10-ая запись — плохо. Значит, нумерацию будем начинать с нуля - от _GET['page'] отнимем 1 и это число будем умножать на кол-во записей на страницу. Итог: Всего страниц = (количество общих записей) / (записей на страницу) Начало выборки = ((номер стр. из массива _GET) - 1) * (записей на страницу)). Там объяснять-то нечего, обычная арифметика класса этак второго.
а не проще не арифметически а средствами пхп приставить 0 к номеру страницы и отнять 10 =)) и получить два числа старт и лимит. И в догонку вопрос созрел а если важно соблюдать хронологию обозначенную в новостях? Например есть новости: ид - название - контент - дата 1 - новость 1 - какойто контент - сегодня 2 - новость 2 - какойто контент - позавчера 3 - новость 3 - какойто контент - вчера как сделать так что б новости выводились в хронологии сегодня, вчера, позавчера? SELECT * FROM `news` ORDER BY `дата` DESC LIMIT $start, $limit ????? дата в формате юникстайм
Padaboo [vs] По-моему, вы не так поняли. ВОзможно, автор имел ввиду вывод новостей за сегодня (то есть несколько статей, где date=16.04.2010), вчера (date=15.04.2010) и их может быть как ноль, так и неограниченно. Но автор хотел сам думать, потому... не мешаю)