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.
Du kunne jo lave en hjemmeside, hvor du bruger META-REFRESH (google kan hjælpe dig hurtigere end nogen anden her) og på denne hjemmeside henter du bare data ud.
Når du så sidder ved din computer og kigger på hjemmesiden, så opdaterer den sig selv løbende, og giver dig den nyeste information.
Synes godt om
Slettet bruger
09. november 2010 - 16:12#4
Tror bare du skal lade være med at svare på dette indlæg, det lyder ærligt talt ikke som om du har en anelse forstand på programmering.
Jeg afventer hjælp fra andre eksperter.
Ja, men undskyld mig, men hvad har metarefresh noget som helst at gøre med at køre et php cron script og du svarer ikke engang på det jeg egentligt spørger om i mit indlæg.
//Tiden minus to timer $tid = Date("U") - 60*60*2;
$query = "SELECT * FROM `accepteret` WHERE `accepteret_tidspunkt` > `".$tid."`";
$result_set = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($result_set) == 0) { //Der er ingen opgaver - gør noget } else { $result = mysql_fetch_array($result_set); $id = $result['id']; print "Bruger ".$id." har ikke lavet hvad han skulle"; }
?>
Dette gemmer du så i et script.php og sætter CRON (på din linux) til at køre dette hvert 10. minut.
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?
Synes godt om
Slettet bruger
09. november 2010 - 17:25#10
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() ?
Synes godt om
Slettet bruger
09. november 2010 - 18:00#11
Metarefresh i en browser er en udemærket måde at få kørt et script på serveren. (Specielt når du nævner at det kun er dig som har brug for at "tage den videre")
Din ubehøvlede afvisning (#4) er totalt uacceptabel.
At mcb2001 gad hjælpe dig yderligere er et lille mirakel = ikke noget du skal regne med fremover.
Du skylder en stor fed undskyldning - Før dén falder er du blacklistet! - og måske endda efter... møgunge.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.