У меня есть таблица 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;
Я ищу какой-нибудь способ сделать это проще, поскольку я хочу, чтобы он работал максимально эффективно из-за большого количества попаданий.
Спасибо