Mysql
 sql >> база данни >  >> RDS >> Mysql

Състояние на потребителя онлайн офлайн - проблем със статуса офлайн

Без да знаете структурата на вашата БД, това е нещо като предположение.

if ($time >= $loggedtime)

Сравнявате низ като '2012-11-01 10:10:10' с каквото и да е $time е във вашата БД. Изглежда, че това е проблемът тук. Можете/трябва да използвате UNIX времеви печати. Те могат лесно да се сравняват.

Ако $time бяха UNIX времеви печат, който можете просто да направите:

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

РЕДАКТИРАНЕ:

Променете заявката си, за да получите времеви печат на UNIX за online

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

РЕДАКТИРАНЕ 2: За да стане по-ясно:В първата си версия сравнявахте две дати под формата „2012-11-01 10:10:10“

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

Това не може да работи в PHP - все едно правиш:

if ('apples' < 'bananas')

Трябва да сравнявате числата. Затова предложих да използвате времеви марки в unix, които могат лесно да се сравняват.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. заявката не е равна не работи

  2. Форматирайте числото до 2 знака след десетичната запетая

  3. Защо MySQL позволява групиране по заявки БЕЗ агрегатни функции?

  4. Sql/Doctrine заявка за намиране на данни с множество условия с много към много асоциации

  5. Грешка в MySQL 1449:Потребителят, посочен като дефинер, не съществува