[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Просмотр пользователей ONLINE
zvezda_t
Здравствуйте, уважаемые программисты!

Задача: Вывести список online пользователей.

Метод реализации:
Создала таблицу user_online, где храню id пользователя и дату обновления его страницы.

mysql_query("INSERT INTO user_online (userid,dtactiv) VALUES('".$iduser."',NOW())");

Делаю запрос к этой таблице - вывести всех пользователей для которых дата обновления попадает в интервал 10 минут.
для конкретного:
$result1=$database->query("SELECT * FROM user_online WHERE (dtactiv BETWEEN DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND NOW()) AND userid='".$id_user."'");
if(mysql_num_rows($result1)>0)
{
print "<div style='width:130px;height:20px;background-color:#00ff00;'>сейчас на сайте</div>";
}


Для того чтобы записывать дату обновления страницы - при каждом действии пользователя - вызываю скрипт который изменяет значение в user_online.

$res=$database->query("SELECT * FROM user_online WHERE userid='".$userid."'");
if(mysql_num_rows($res)>0)
{
$database->query("UPDATE user_online SET dtactiv= NOW() WHERE userid='".$userid."'");
}


Насколько данный метод рационален? Если нет - подскажите пожалуйста как правильно реализовать эту задачу rolleyes.gif



Спустя 10 минут, 26 секунд (21.09.2010 - 10:06) Basili4 написал(а):

res=$database->query("SELECT * FROM user_online WHERE userid='".$userid."'");
if(mysql_num_rows($res)>0)
{
$database->query("UPDATE user_online SET dtactiv= NOW() WHERE userid='".$userid."'");
}



здесь первый запрос лишний если $userid не будет то изменения и какие поля не затронет.


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Быстрый ответ:

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