2010-04-08 4 views
0

Je voudrais demander si j'ai une table d'événements sur ma base de données, par exemple.Afficher les événements sur le calendrier PHP

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 

J'ai déjà créé un calendrier de php, comment puis-je afficher ces événements ci-dessus sur mon calendrier, afin qu'il ressemblera à quelque chose comme le calendrier google? par exemple. sur le 2010-04-01, il affichera "event1" sur le calendrier du mois.

Merci.

Répondre

1

En supposant que vous avez une variable d'année $ et mois $ déjà précalculées pour afficher la grille de calendrier, vous souhaitez récupérer les données de la base de données quelque chose comme ceci:

$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 
} 

Ensuite, tout en construisant le calendrier, vérifier si $ jour est présent dans le tableau $events et la sortie des descriptions comme vous le souhaitez:

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

Bien sûr, si vous avez des événements qui couvrent plusieurs jours, vous devrez modifier les choses à gérer, mais cela devrait vous aider à commencer à événements les moins d'une journée.

Questions connexes