ОБСУЖДЕНИЕ

time()

7 сообщений1 просмотровОткрыта
#1
Кароч когда пользователь в онлайне время отнимается с колонки online,когда пользователь в оффе то стоит на месте,как поправить код?)Нужно что то вместо us подшаманить или как -_-

if($us['online']==0) mysql_query("UPDATE `users` SET `online`='".(time()+(300))."' WHERE `id` = '".($us['id'])."'");

$ti = mysql_result(mysql_query("SELECT `online` FROM `users` WHERE `id` = '".($us['id'])."'"), 0) - time();

if($ti<=0)
{
mysql_query("UPDATE `users` SET `online`='0' WHERE `id` = '".($us['id'])."'");

}
#2
Как я понял по коду когда юзер офф, время должно быть равно нулю. Но значение не присваевается, т.к. для этого юзер должен быть онлайн гг) У автора этого куска кода явные нелады с логикой :D Как вариант, можно сделать выборку по всем юзерам, и кого время ушло в минус присваивать 0, а код запихнуть в крон.
#3
Сигурд, А что если сделать обновление запроса через ajax или jQuery?Должно сработать наверное...
#4
И делать обновление только когда значение больше 0...
#5
Сигурд, не...что то я торможу...
#6
Crank, Лучше всего просто прописать код в шапке, который будет обновлять время в колонке online для авторизованого юзера. И отдельно прописать функцию, которая по этому времени будет определять онлайн юзер или нет. И вызывать эту функцию там, где нужно, например, в анкете юзера или в чате рядом с ником.
#7
зачем 0 ?
запилите время онлайна и считывайте 10 минут после обновления.