[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SET TIME_ZONE
Ramzil_Nixon
Сразу после подключения БД, прописываю это:

mysql_query("SET TIME_ZONE='+4:00'");


А активность я проверяю следующим образом:

	if(strtotime($User['visit']) > time() - $SecondOnline && $User['online'] == 1)
{
$OnlinePrint = '<span id="GreenSpan">(Online)</span>';
}


$SecondOnline - 300 секунд,

А именно не работает этот участок: strtotime($User['visit']) > time() - $SecondOnline
как это можно исправить?



Спустя 1 минута, 34 секунды (24.01.2012 - 20:08) Winston написал(а):
А если правильно переписать?
if((strtotime($User['visit']) > (time() - $SecondOnline)) && ($User['online'] == 1))

Спустя 11 минут, 29 секунд (24.01.2012 - 20:19) Ramzil_Nixon написал(а):
Winston, по прежнему так же

Спустя 6 минут, 5 секунд (24.01.2012 - 20:25) Winston написал(а):
Дата в каком формате хранится у тебя в $User['visit']
И ты уверен, что условие $User['online'] == 1 истинно?
Цитата (Ramzil_Nixon @ 24.01.2012 - 19:06)
А именно не работает этот участок: strtotime($User['visit']) > time() - $SecondOnline

С чего ты взял?

Спустя 6 минут, 18 секунд (24.01.2012 - 20:31) asokol написал(а):
Может стоит просто убрать $User['online'] == 1? Потому что масло-масленное получается.

Спустя 53 секунды (24.01.2012 - 20:32) Ramzil_Nixon написал(а):
Цитата (Winston @ 24.01.2012 - 17:25)
И ты уверен, что условие $User['online'] == 1 истинно?


Да уверен. Дело в том, что активность, после истечения установленный даты не исчезает, то есть пользователь не выходит в оффлайн

2012-01-24 21:31:14 вот в таком формате

Спустя 41 секунда (24.01.2012 - 20:33) Ramzil_Nixon написал(а):
asokol, в таком случае, после выхоода пользователя через "Выход" пока не истечет время не изчеснет OnLine

Спустя 9 минут, 18 секунд (24.01.2012 - 20:42) Winston написал(а):
По-моему проще сделать таблицу для юзеров которые онлайн, и делать выборку вот так
SELECT *
FROM `onlines`
WHERE `vizit` < SUBTIME(NOW(), '0:05:0')

То есть выбрать юзеров за последние 5мин.

Спустя 2 минуты, 47 секунд (24.01.2012 - 20:45) Ramzil_Nixon написал(а):
Цитата (Winston @ 24.01.2012 - 17:42)
То есть выбрать юзеров за последние 5мин.

Это вроде лучше подходить для вывода общих количеств онлайн юзеров?
А в отдельности тоже так же будет?

Спустя 3 минуты, 47 секунд (24.01.2012 - 20:49) Winston написал(а):
Цитата (Ramzil_Nixon @ 24.01.2012 - 19:45)
А в отдельности тоже так же будет?

Ну в отдельности нужно выбрать юзера по ID или как ты определяешь пользователя? И сделать лимит, например так
SELECT *
FROM `onlines`
WHERE `vizit` < SUBTIME(NOW(), '0:05:0')
AND `userId` = '".$ID_юзера."'
LIMIT 1

Спустя 53 секунды (24.01.2012 - 20:50) Winston написал(а):
Но перед выборкой неплохо бы очищать таблицу от ненужных записей
DELETE
FROM
`onlines`
WHERE `vizit` < SUBTIME(NOW(), '0:05:0')

Спустя 5 минут, 32 секунды (24.01.2012 - 20:55) Ramzil_Nixon написал(а):
Winston, хорошо, спасибо. Попробую

Спустя 14 часов, 44 минуты, 18 секунд (25.01.2012 - 11:40) Ramzil_Nixon написал(а):
Цитата (Winston @ 24.01.2012 - 17:08)
А если правильно переписать?
if((strtotime($User['visit']) > (time() - $SecondOnline)) && ($User['online'] == 1))

Это было правильно smile.gif
Просто на коде надо было кое где (.) поставить smile.gif


_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.