sql >> Database teknologi >  >> RDS >> Mysql

Bruger online offline status - offline status problem

Uden at kende din DB-struktur er det en slags gæt.

if ($time >= $loggedtime)

Du sammenligner en streng som '2012-11-01 10:10:10' med hvilken som helst $time er i din DB. Dette ser ud til at være problemet her. Du kunne/bør bruge UNIX-tidsstempler. De kan nemt sammenlignes.

Hvis $time var et UNIX-tidsstempel, du bare kunne gøre:

if ($time >= time()-300)

EDIT:

Skift din forespørgsel for at få et UNIX-tidsstempel til online

$query = 'SELECT userid, handle, UNIX_TIMESTAMP(online) as online FROM ^users ORDER BY userid ASC';

EDIT2: For at gøre det mere klart:I din første version sammenlignede du to datoer i formen '2012-11-01 10:10:10'

if ('2012-11-01 10:10:10' < '2012-11-02 10:10:10')

Dette kan ikke fungere i PHP - det er ligesom at gøre:

if ('apples' < 'bananas')

Du skal sammenligne tal. Derfor foreslog jeg at bruge unix-tidsstempler, som nemt kan sammenlignes.



  1. Sådan gemmer du data, der indeholder anførselstegn i MySQL

  2. mysql:hvordan gemmer man ORDER BY efter LEFT JOIN uden genbestilling?

  3. SQLAlchemy-understøttelse af Postgres-skemaer

  4. Opret en Multi-Statement Table-Valued Function (MSTVF) i SQL Server