$sql = mysql_query("SELECT * FROM operators WHERE id = 1") or die(mysql_error());
$row = mysql_fetch_assoc($sql);

$db_time = mktime($row['idle_time']);
$now = mktime(date("Y.m.d-H.i.s"));
$idle_time = $db_time - $now;
echo $idle_time;

Waarom altijd 0?

Bedoeling is dat die de datetime uit mijn db omzet in unixtimestamp en de huidige tijd in unixtimestamp en dan die twee van elkaar aftrekt...
Je kunt het beter met SQL zelf doen. Namelijk DATE_FORMAT gebruiken en NOW(). Dan kun je gewoon zoiets doen:

SELECT DATE_FORMAT('%d-%m-%Y %H:%i', (NOW() - idle_time)) AS tijd FROM tabel

Je moet even kijken naar het format en of dit zo werkt (bij MySQL weet je het nooit).
wat ik wil is:

Vergelijk huidige tijd met het veld idle_time in db (datetime).

Als dit meer dan 60 seconden is moet variable status = 'idle'; zijn. anders status = 'niet idle';

db:

table (operators)
|id|operatornaam|idle_time|

Alvast bedankt (zou iemand even die query kunnen maken want ik ga dit erna nooit meer opnieuw gebruiken en voordat ik er zelf uit ben...)
wat ik wil is:

Vergelijk huidige tijd met het veld idle_time in db (datetime).

Als dit meer dan 60 seconden is moet variable status = 'idle'; zijn. anders status = 'niet idle';

db:

table (operators)
|id|operatornaam|idle_time|

Alvast bedankt (zou iemand even die query kunnen maken want ik ga dit erna nooit meer opnieuw gebruiken en voordat ik er zelf uit ben...)

[EDIT] Sorry voor 2 maal verzenden [/EDIT]
Zie dit topic, het antwoord staat daar al in. Zie de fraaie CASE.
probleem is dat ik die niet werkend kreeg...
Mathias D schreef op 30.07.2007 17:11
probleem is dat ik die niet werkend kreeg...
Los dat probleem dan op! Het is een uitstekende oplossing die je nog heel vaak nodig zult hebben. Leer daar nu van en je zult er een hoop plezier aan beleven.

Welke foutmeldingen krijg je en hoe ziet jouw tabel er uit?
table (operators)
|id|operatornaam|idle_time|

ik zou idle of niet in variable status willen en eu wat moet je nog weten?

maar ik krijg die niet ingevult
SELECT CASE WHEN ??WATMOETHIER??< DATE_SUB(idle_time, INTERVAL 1 MINUTE) THEN 'idle' ELSE 'niet idle' END AS status FROM operators

en een where moet niet in die query? id=1 nrml where....

SELECT 
  CASE 
    WHEN idle_time < DATE_SUB(NOW(), INTERVAL 1 MINUTE) THEN 'idle' 
    ELSE 'niet idle' 
  END AS status
FROM
  operators

Volgens mij moet deze werken, wellicht dat < een > moet zijn, maar dat mag je zelf uitvogelen.

Reageren