[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Онлайн юзеры
Страницы: 1, 2, 3
N0ob
Всем привет!!! В общем написать вывод онлайн юзеров из БД, по полю lastvisit. Формат времени таков: y-m-d h:i:s. Нужно вывести всех юзеров, у которых поле lastvisit отличается от текущего времени максимум на 10 сек. Как это сделать?
DedMorozzz
WHERE `datetime` >= NOW( ) - INTERVAL 10 SECOND

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
N0ob
DedMorozzz не работает. Ошибок не выдает, но и не вытаскивает юзеров(
DedMorozzz
N0ob, покажи запрос. У себя проверил - работает

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
N0ob
SELECT `fg5k_users`.`name`, `fg5k_users`.`lastname`, `fg5k_users`.`avatar`, `fg5k_users`.`id` FROM `fg5k_users` LEFT JOIN `fg5k_friends` ON `fg5k_friends`.`id_user`=`fg5k_users`.`id` or `fg5k_friends`.`id_friend`=`fg5k_users`.`id` WHERE (`fg5k_friends`.`id_user`='".(int)$_SESSION['id']."' or `fg5k_friends`.`id_friend`='".(int)$_SESSION['id']."') AND `fg5k_users`.`id` != '".(int)$_SESSION['id']."' AND  `fg5k_users`.`lastvisit` >= NOW() - INTERVAL 10 SECOND

Пробовал убрать AND `fg5k_users`.`lastvisit` >= NOW() - INTERVAL 10 SECOND все вывело, с ним не выводит!
DedMorozzz
может нЕкого выбирать? Поставь не 10 сек, для теста, а 100000

И локализируй выборку. Просто в 1й таблице ласт визит сделай запрос. Без джоина. Отработает как надо - уже делай джоины

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
inpost
N0ob
а там точно есть за последние десять секунд ? Поставь нечто вроде 1 минуту и проверь.
У тебя там точно в lastvisit идёт время из Mysql? На сервере время синхронизировано?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
N0ob
inpost поставил на 60 секунд все так же. Время в БД записывается правильно.
DedMorozzz
Цитата (N0ob @ 16.01.2014 - 16:59)
Время в БД записывается правильно.

Правильно это как?
Инпост задал вполне правильный вопрос - откуда в БД время попадает?

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
killer8080
N0ob
тип поля точно DATETIME?
И не пиши запрос в одну строку, невозможно же читать
SELECT `u`.`name`, `u`.`lastname`, `u`.`avatar`, `u`.`id` 
FROM `fg5k_users` `u`
LEFT JOIN `fg5k_friends` `f` ON `f`.`id_user`=`u`.`id` OR `f`.`id_friend`=`u`.`id`
WHERE
(`f`.`id_user`=".(int)$_SESSION['id']." OR `f`.`id_friend`=".(int)$_SESSION['id'].") AND
`u`.`id` != ".(int)$_SESSION['id']." AND `u`.`lastvisit` >= NOW() - INTERVAL 10 SECOND
N0ob
Каждую секунду я посылаю аякс запрос на выборку этих юзевров, и обновляю поле lastvisit на date("y-m-d h:i:s")
DedMorozzz
Цитата (N0ob @ 16.01.2014 - 17:09)
обновляю поле lastvisit на date("y-m-d h:i:s")

Другими словами в БД хранится время с ПХП.
Теперь 2й вопрос, который уже был озвучен. А время пхп == времени мускула?
сделай SELECT NOW() и date()

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
N0ob
Цитата
тип поля точно DATETIME?

Да
N0ob
Цитата
Теперь 2й вопрос, который уже был озвучен. А время пхп == времени мускула?

Вот этого я не знаю
Цитата
сделай SELECT NOW() и date()

Сейчас сделаем smile.gif
bestxp
а вопрос, а зачем ты отправляешь пыховое время?
Оптимальнее было бы использовать now() в бд
ИМХО всё что может сделать БД пусть она и делает)
Быстрый ответ:

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