View Single Post
Anbefaler deg å legge koden i et pastebin og legge en link her. Det er et tiltak å laste ned og pakke ut arkivet ditt.

Når det kommer til koden så er det bare rot. Det er vanskelig å forstå hva som skjer. Når du for eksempel henter ut events fra databasen så bruker du implode og explode på alle mulige variabler om hverandre, noe som er totalt unødvendig. Du henter også ut alle feltene fra databasen, uavhengig av hvilken måned man er i/viser.

Jeg lagde for lenge siden en klasse for en kalender. Slik jeg gjorde det var at jeg har et datetime-felt i tabellen for hver event/dag. Dermed kan du hente ut alle eventer per måned og lage et array

Kode

<?php
private function getEvents($year, $month) {
		$query = mysql_query(sprintf('
			SELECT `id`, DAY(`date`) AS `day`, `date`, `content` FROM `events` WHERE YEAR(`date`) = %d AND MONTH(`date`) = %d ORDER BY `date` ASC
			', $year, $month
		));
		
		$array = array();
		
		while ($row = mysql_fetch_object($query)) {
			$array[$row->day][] = array('id' => $row->id, 'day' => $row->day, 'date' => $row->date, 'content' => $row->content);
		}
		
		return $array;
	}
?>
I løkken der du skriver ut tabellen kan man enkelt telle antall events med koden "count($events[$day])", der $events er arrayet returnert fra funksjonen over, og $day er day of the month (1-31) Her kan man enkelt legge til en sjekk som skriver ut hvor travel denne dagen er ut ifra hvor mange events det er.

Jeg ønsker ikke å skrive om hele koden din, i alle fall ikke slik den ser ut nå, men prinsippet over hvordan det kan gjøres har jeg postet over. Om du legger koden mer tilgjengelig (f. eks pastebin) er det sikkert flere om ønsker å hjelpe.