![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Valdo |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 6.4.2010 Репутация: нет Всего: нет |
Доброго времени суток!
Пытаюсь решить следующую задачу: Пользователь входит на сайт. Дабы быть ему в курсе произошедших на сайте событий, на специально отведенной для них странице, пользователю выводятся все события, произошедшие на сайте за 8 дней (к примеру). Действия, которые предпринял для решения поставленной задачи:
Получился массив примерно следующего содержания:
Идем дальше:
Результат выполнения приблизительно следующий: Сегодня, 25 ноября 2010 Вчера, 24 ноября 2010 20:24 - Зарегистрировался новый участник *** Позавчера, 23 ноября 2010 23:26 - Добавлена статья *** 19:41 - Зарегистрировался участник *** 17:13 - Добавлена статья *** 13:01 - Зарегистрировался участник *** 02:16 - Зарегистрировался участник *** 22 ноября 2010 00:50 - Зарегистрировался участник *** 00:39 - Зарегистрировался участник *** 21 ноября 2010 20 ноября 2010 19 ноября 2010 17:13 - Зарегистрировался участник *** 14:26 - Добавлена статья *** 18 ноября 2010 ---------------------- Из примера видно, что на некоторые даты (21.11.2010, 20.11.2010 и 18.11.2010) нет никаких событий. Несмотря на их отсутствие, даты успешно выводятся. Из чего выходит, что пользователь видит события за 4 дня, вместо положенных восьми. Вот здесь я зашел в тупик... Задача подразумевает вывод обновлений на 8 дней. Восемь дней не обязательно должны быть последовательными. Иначе говоря, если вчера и позавчера на сайте ничего не произошло - эти дни не засчитываем. Выводит только те даты, на которые есть какие-либо события. Перед циклом foreach я вывожу дату. К примеру, Сегодня, 25 ноября 2010. НО: на этот день может и не быть никаких событий. А могут и быть, но после того, как пользователь вошел на сайт. К примеру, пользователь вошел сегодня, в 2 часа ночи. Между 25.11.2010, 00:00:00 и 25.11.2010, 02:00:00 нет событий. Первое событие может произойти позже - скажем, в 16:20 зарегистрируется новый пользователь. Это событие в 16:20 успешно выйдет на соответствующей странице с выводом событий на сайте. У меня же, после 25.11.2010, 00:00:00 надпись "Сегодня, 25 ноября 2010" успешно выводится, несмотря на то, что на сегодня никаких событий... Никак не могу решить задачу с выводом дат: Необходимо в самом начале проверять, есть ли на текущую дату какие-либо события (в массиве $new)? Если есть - выводим текущую дату и имеющиеся на текущую дату события. Затем проверяем предыдущий день - если нет событий, пропускаем дату. Проверяем очередную - по убыванию и т.д. Выводим только те даты, на которые произошли какие-либо события на сайте. В итоге, получится 8 дней... Своими силами, боюсь, эту задачу мне не осилить. Три дня мучаюсь и безрезультатно. Либо код изначально неверно составлен, отчего и трудности с выводом дат... Произвел поиск по форуму - подобное, вроде, не обсуждалось. Прошу прощения за чересчур длинное сообщение и заранее большое спасибо за любую помощь в решении задачи... Это сообщение отредактировал(а) Valdo - 25.11.2010, 23:44 |
||||||
|
|||||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
не $i <= $config['news_days'], а $j<= $config['news_days']
а $j увеличивать не в голове цикла уже, а в теле - только при условии, что в указанный день были события. впрочем, мне кажется, что тебе надо поторопиться перейти от насилования массива к запросу из базы данных - пока данных немного. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |