Kalender problem
Hej.Jeg har lavet følgende events system:
http://www.intetliv.dk/test/view.html
Problemet er, at hvis man tilføjer mere end et event til f.eks. den. 2 april 2008, så viser den kun det nyeste event.
Ville gerne have det sådan, at hvis der er to eller flere events til èn dag, så skal de stå sådan:
02. Onsdag
- test
- test2
Min kode ser sådan her ud:
<?
include("../inc/cfg.php");
include 'calendar.php';
?>
<table border="0" width="100%" cellspacing="1" height="95%">
<tr>
<td width="298" valign="top">
<?
$currentTime = mktime(0, 0, 0, $month, $day, $year);
$weekinfo = array();
getWeekinfo($currentTime, $weekinfo);
$prevWeekinfo = array();
getWeekinfo($weekinfo['startTime']-(24*60*60), $prevWeekinfo);
$nextWeekinfo = array();
getWeekinfo($weekinfo['endTime']+(24*60*60), $nextWeekinfo);
$monthNames = array('01' => 'Jan', '02' => 'Feb', '03' => 'Mar', '04' => 'Apr', '05' => 'Maj', '06' => 'Jun', '07' => 'Jul', '08' => 'Aug', '09' => 'Sep', '10' => 'Okt', '11' => 'Nov', '12' => 'Dec');
?>
<a href="./?date=<?=$prevWeekinfo['startDate']?>" ><<</a> Uge <?=$weekinfo['week']?>. <?=$weekinfo['startDay']?> <?=$monthNames[$weekinfo['startMonth']]?> - <?=$weekinfo['endDay']?> <?=$monthNames[$weekinfo['endMonth']]?> <a href="./?date=<?=$nextWeekinfo['startDate']?>" >>></a>
<br><br>
<?
$days = getDays($weekinfo['startDate'], $weekinfo['endDate']);
for ($i = 0; $i < 7; $i++){
$curTime = $weekinfo['startTime'] + ($i * 24 * 60 * 60);
$curDate = date('Y-m-d', $curTime); // hele datoen
$curDay = date('d', $curTime); // nummer på dagen.
$text = $dayNames[date('N', $curTime)-1].': ';
if (isset($days[$curDate])){
echo $curDay,'. ', $text, '<br> - <a target="open" href="vis_event.php?id='.$days[$curDate]['id'].'">'.$days[$curDate]['overskrift'].'</a><br><br>';
} else {
echo $curDay, '. ', $text, '<br><br>';
}
}
?>
</td>
<td width="936" valign="top">
<p>
<iframe src="vis_event.php" name="open" height="100%" width="100%" border="0" frameborder="0" scrolling="no">Your browser does not support inline frames or is currently configured not to display inline frames.</iframe>
</td>
</tr>
</table>
og CALENDER.PHP:
<?
include("../inc/cfg.php");
function getDays($startDate, $endDate){
global $mysqli;
$startDate = mysql_real_escape_string($startDate);
$endDate = mysql_real_escape_string($endDate);
$sql = 'SELECT * FROM events'.' WHERE date >= '.$startDate.' AND '.$endDate.' <= date';
$result = mysql_query($sql) or die(mysql_error());
$arr = array();
while ($res = mysql_fetch_array($result) ){
$arr[$res['date']] = $res;
}
return $arr;
}
function getWeekinfo($time, & $data){
$data['week'] = date('W', $time);
// Find first day of the week
for ($i = 1; true; $i++){
if ( date('W',$time - ($i * 60 * 60 * 24)) != $data['week']){
$data['startTime'] = $time - (($i-1) * 60 * 60 * 24);
$data['startDay'] = date('d', $data['startTime']);
$data['startMonth'] = date('m', $data['startTime']);
$data['startYear'] = date('Y', $data['startTime']);
$data['startDate'] = date('Y-m-d', $data['startTime']);
break;
}
}
// Find last day in the week
for ($i = 1; true; $i++){
if (date('W',$time + ($i * 60 * 60 * 24)) != $data['week']){
$data['endTime'] = $time + (($i-1) * 60 * 60 * 24);
$data['endDay'] = date('d', $data['endTime']);
$data['endMonth'] = date('m', $data['endTime']);
$data['endYear'] = date('Y', $data['endTime']);
$data['endDate'] = date('Y-m-d', $data['endTime']);
break;
}
}
}
$dayNames = array('Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag', 'Søndag');
$DATE = '/^(\d\d\d\d)-(\d\d)-(\d\d)$/';
$startDate = null;
if (!isset($_GET['date']) || preg_match($DATE, $_GET['date']) == 0){
$startDate = date('Y-m-d');
} else {
$startDate = $_GET['date'];
}
$dates = array();
preg_match($DATE, $startDate, $dates);
$year = $dates[1];
$month = $dates[2];
$day = $dates[3];
?>
Tak på forhånd.
