sql >> Databáze >  >> RDS >> Mysql

Offline stav uživatele online – problém se stavem offline

Bez znalosti vaší DB struktury je to jen odhad.

if ($time >= $loggedtime)

Porovnáváte řetězec jako '2012-11-01 10:10:10' s jakýmkoli $time je ve vaší DB. Zdá se, že toto je problém zde. Mohl/a byste použít časová razítka UNIX. Lze je snadno porovnávat.

Pokud $time byly časové razítko UNIX, které jste mohli udělat:

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

UPRAVIT:

Změňte svůj dotaz tak, abyste získali časové razítko UNIX pro online

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

EDIT2: Aby to bylo jasnější:Ve své první verzi jste porovnávali dvě data ve tvaru '2012-11-01 10:10:10'

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

Toto nemůže fungovat v PHP – je to jako dělat:

if ('apples' < 'bananas')

Musíte porovnávat čísla. Proto jsem navrhl používat unixová časová razítka, která lze snadno porovnávat.



  1. Jak získat včerejší datum v MySQL

  2. Tipy a triky pro navigaci v komunitě PostgreSQL

  3. BETWEEN dotaz pomocí JDBC s MySQL

  4. Získejte druhou nejvyšší hodnotu v tabulce MySQL