Hejsa,
jeg sidder med en meget stor hjernevrider.... håber i klogehoveder kan hjælpe mig...
Det drejer sig om et system jeg er igang med, hvor en "bruger" accepterer en opgave i mit system. Hver gang en bruger accepterer en opgave, sætter jeg timestamp i databasen med accepteret-tidspunktet.
Her skaljeg så lave et cronjob, som fortæller, at hvis brugeren IKKE har færdiggjort en opgave indenfor 2 timer, skal den udskrive "Brugeren har ikke lavet opgaven indenfor 2 timer", så kan jeg selv tage den videre der fra.
Jeg mangler en brugbar løsning til dette, da jeg selv har forsøgt, men forgæves.
Min tabel hedder "accepteret", som har disse felter:
id
tester_id
opgave_id
accepteret
accepteret_tidspunkt
done
tester_id er f.eks 12
opgave_id er f.eks 14
accepteret er enten 0 eller 1, 1 = ja og 0 = nej
accepteret_tidspunkt er f.eks 1232394 (time())
done er enten 0 eller 1. 0 = ikke lavet, 1 = lavet.
Hvad kan jeg gøre for den bedste løsning? Tak.
Noget er forkert, fordi min kode jf.(
http://pastebin.com/dhRyrCW2 ) udskriver følgende:
Tester: 1 har accepteret opgaven d. 09-11/2010 16:28:42, men har ikke lavet testen indenfor 2 timer (09-11/2010 15:19:37)
Der er ikke 2 timer i mellem. Og hver gang man opdaterer siden, bliver der jo "resettet" de 2 timer, så den vil aldrig nogensinde virke efter min mening.
Nogen gode idéer?
Linjen:
$openDB = $this->getQuery('SELECT `tester_id`, `opgave_id`, `accepteret_tidspunkt` FROM `'.$this->unix_db.'_accepteret` WHERE `accepteret` = 1 AND `done` != 1 AND `accepteret_tidspunkt` > '.$this->twoHours);
Skal vel sige "acceptering"tidspunktet - 2 timer?
Men hvordan får jeg sat det i min query, da den jo først laver mysql_fetch_assoc() nedenunder?
$this->twoHours skal vel være "accepteret_tidspunkt" fra databasen + eller - 2 timer, for det virker? Har jeg ret? I såfald, som nævnt overstående: Hvordan putter jeg det i min query da jeg først kan udtrække accepteret_tidspunkt når jeg har kørt mysql_fetch_Assoc() ?
Takker 10000 gange på forhånd