Loading...
PHP/MySQL | Реализация статуса онлайн
Loading... (29.12.2018 в 00:11)
terad1m, Я сделал что бы при обновлении страницы строка в БД обновлялась и сделал проверку

if($user['data_last'] <= time()-600){

echo "<font color='green'>Онлайн</font>";


}else{

echo "<font color='red'>Оффлайн</font>";

}

Но теперь проблема в том что выводит всем пользователям статус онлайн

Наоборот >=
TuT, ну и так можно

<?php
function usOn ($time){
if ($time+300 <= $time){
return 'Онлайн';
} else {
return 'Оффлайн';
}

# Допустим что $ank это массив с данными о юзере
# и там есть колонка usOn, и она обновляется при любом действии пользователя
# те в нужном месте просто проверь
echo 'Пользователь: '.usOn($ank['usOn']);
?>
PhP_Fucker, нужно, что бы потом не ковырять весь скрипт для смены времени.
Что за мода, напрягать СУБД каждую секунду
Avenax (29.12.2018 в 01:58)
Что за мода, напрягать СУБД каждую секунду

Варианты решений?
TuT (29.12.2018 в 02:23)
Avenax (29.12.2018 в 01:58)
Что за мода, напрягать СУБД каждую секунду

Варианты решений?

Я не автомат, выдавать готовые решения

NoSql решение
Я делаю так при переходе пользователем на любую страницу сайта выполняю запрос к таблице юзеров, в которой есть поле бд, при каждом переходе пользователя на какую либо страницу обновляю это значение текущим значением time(). Проверка он лайн / не он лайн осуществляется выборкой типа

$sql=mysql_query("SELECT lastvisittime FROM users WHERE lastvisittime>". time()-300 ." WHERE userid=".$userid);
if ($row=mysql_fetch_array($sql))
{
$online=true;
}
Avenax (29.12.2018 в 23:27)
TuT (29.12.2018 в 02:23)
Avenax (29.12.2018 в 01:58)
Что за мода, напрягать СУБД каждую секунду

Варианты решений?

Я не автомат, выдавать готовые решения

NoSql решение

Я и не говорю, что бы выдать сразу результат. Вдруг у вас есть уже готовая конструкция. Вот и спросил.
Онлайн: 0
Время:
Gen. 0.1037
(c) Bym.Guru 2010-2025