Pogledajte određenu poruku
Staro 05. 06. 2007.   #15
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Hvala ljudi!

Mislim da će ovo raditi posao. Tabela events ima sledeća polja:

id - integer
name - varchar
year - integer
month - integer
day - integer
weekday - integer (gde je 0 nedelja, a 6 subota)
hour - integer
second - integer
repeat - enum(daily, weekly, monthly, yearly)

Kada se ovako rasloje podaci lako je izvući događaje za određeni dan:

PHP kôd:
// Kucano iz glave, cisto kao demonstracija. Nema nikakvih provera 
// i najverovatnije sadrzi greske...
function get_by_date($timestamp) {
  
$elements getdate($timestamp);
  
  
$where = array(
    
"(repeat = 'daily' AND day = " $elements['mday'] . ')'
    
"(repeat = 'weekly' AND weekday = " $elements['wday'] . ')'
    
"(repeat = 'montly' AND month = " $elements['mon'] . ')'
    
"(repeat = 'yearly' AND year = " $elements['year'] . ')'
  
);
  
  return 
mysql_query('SELECT id, name FROM events WHERE ' implode(' OR ' $where));
// get_by_date 
Ista stvar ide i ako je u igri vreme - samo se dodaju uslovi za sate i sekunde.

Što se mene tiče, ovo zadovoljava potrebe za izradu jednostavnog event kalendara. Možemo tu sada da komplikujemo i dodajemo biweekly i bimonthly podršku, svaka dva sata, raspone gde dođaj može da se proteže na više dana i slične gluposti, ali i ovako kako je će raditi posao većini ljudi.

Poslednja izmena od Ilija Studen : 05. 06. 2007. u 09:23.
Ilija Studen je offline   Odgovorite uz citat