PHP Hourly Calendar, пробег по временным меткам, хранящимся в базе данных - PullRequest
1 голос
/ 16 июля 2010

У меня есть таблица MySQL под названием «my_cal» со ​​столбцом «start_time» для определенных событий в календаре.

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

Моя проблема заключается в том, что запускать с 00:01 до 23:59 для каждого дня последовательно было бы легко, но я хочу получить данные как:

Пн 00:00, Вт 00:00, Ср 00:00 и т. Д. И т. Д.

Пн. 01:00, Вт. 01:00, Ср. 01:00 и т. Д. И т. Д.

Пн 02:00, Вт 02:00, Ср 02:00 и т. Д. И т. Д.

Это для построения таблицы из 25 строк (24 часа в день + 1 для заголовка) и 8 столбцов (7 дней недели + 1 почасовой заголовок)

Вот пример того, как должен выглядеть календарь, насколько структура HTML-таблицы идет: http://www.wmnf.org/programs/grid

Я попытался заставить это работать, Запуск через результаты MySQL и сохранение их как $ данных [$ hour_of_the_day] [$ day_of_the_week]

Я бы тогда использовал рекурсивный цикл while () для каждого часа, а затем каждый день,

$hour=0;
while($hour > 24)
{
    $day=0;
    while($day > 8) 
    { 
        if(isset($data[$hour][$day])) 
        { echo "event"; } 
        $day++;
    }
    hour++;
}

Я полагаю, что это может мне помочь, но это не выглядит очень элегантно.

Я также хотел, чтобы время в календаре начиналось с 6:00, а не с 12:00. Я хотел, чтобы первый день в списке был сегодня - 3 (чтобы центрировать календарь на сегодня)

Т.е.:

$calendar_begin_day = date("j", mktime()) - 3;

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

Спасибо

1 Ответ

1 голос
/ 16 июля 2010

Когда вы получаете свои результаты, я думаю, что вы можете использовать предложения ORDER BY и функции даты, чтобы упорядочивать их по часам, а затем по дням, а не наоборот. Таким образом, вы можете перебирать результаты и избегать хранения ваших данных в массиве php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...