Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  3 832
Hei

Jeg har problemer med en kalender hvor det skal være mulig å vise dager der et flyttefirma har ledig, middels eller ingen kapasitet. Har koblet dette opp mot en mySQL-db. Alt fungerer, bortsett fra at når jeg leser ut fra db'en, så er det kun en dag per måned jeg får vist kapasiteten for. Irriterer meg grenseløst..

Kan noen vær så snill å se på koden min, og hjelpe meg en smule..

Sjekk http://www.devarticles.com/c/a/PHP/A...ritten-In-PHP/ for tutorialen jeg har fulgt..
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.
Svar til ma10as:

Takk for hjelpen.

Brukte funksjonen din for å få rydda opp i alt array-surret. Den tutorialen jeg brukte var bare rot. Veldig uoversiktlig.

Nå fungerer kalenderen min akkurat som den skal.

Skylder deg en øl i sommervarmen...

Det fungerende scriptet: http://pastebin.no/320e
Sist endret av Patrico_0023; 13. juli 2010 kl. 22:11. Grunn: Glemte noe