Отображение событий в PHP-календаре - PullRequest
1 голос
/ 08 апреля 2010

Я хотел бы спросить, есть ли в моей базе данных таблица событий, например,

description | startdt             | enddt
event1      | 2010-04-01 10:00:00 | 2010-04-01 13:00:00
event2      | 2010-04-09 14:00:00 | 2010-04-09 18:00:00
event3      | 2010-04-30 11:00:00 | 2010-05-02 16:00:00

Я уже создал календарь php, как я могу отобразить эти события в моем календаре, чтобы он выглядел как календарь Google? например на 2010-04-01 в календаре месяца будет отображаться «event1».

Спасибо.

1 Ответ

1 голос
/ 09 апреля 2010

Предполагая, что переменные $ year и $ month уже предварительно рассчитаны для отображения календарной сетки, вы получите данные из базы данных примерно так:

$query = <<<EOF
SELECT DAY(startdt) AS day, description
FROM table
WHERE (YEAR(startdt) = $year) AND (MONTH(startdt) = $month)
EOF;

$stmt = mysql_query($query) or die ('Query error: ' . mysql_error());

$events = array();
while($row = mysql_fetch_assoc($stmt)) {
   $events[$row['day']][] = $row['description']; // might have multiple events on one day, so store as an array of events
}

Затем при построении календаря проверьте, присутствует ли $ day в массиве $events и выведите описания, как вы хотите:

for ($day = 1; $day <= 31; $day++) {
    if(isset($events[$day])) {
         ... display event descriptions
    }
}

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

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