Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Пользователи он-лайн
 
 автор: devil943   (26.01.2008 в 17:06)   письмо автору
 
 

Вот небольшой скриптик:
$session_id = session_id();
    mysql_query(\"UPDATE `users` SET `time_last` = NOW(), `id_session` = \'$session_id\', `status` = \'1\' WHERE `login` = \'$_SESSION[login]\';\");
    mysql_query(\"UPDATE `users` SET `status` = \'0\' WHERE `login` = \'$_SESSION[login]\' AND `time_last` < NOW() - INTERVAL \'20\' MINUTE;\");


По хорошему, ели пользователь засиделся на одной странице больше 20 минут, его метка status должна стать 0

Но оно не работает... Что ни так?

   
 
 автор: Trianon   (26.01.2008 в 17:58)   письмо автору
 
   для: devil943   (26.01.2008 в 17:06)
 

Что это за слэши перед кавычками?

второй оператор, по всей видимости должен быть написан как-то так:
UPDATE users 
   SET status = 0 
   WHERE status <> 0 
          AND NOW() > (time_last + INTERVAL 20 MINUTE) 

   
 
 автор: devil943   (26.01.2008 в 22:32)   письмо автору
 
   для: Trianon   (26.01.2008 в 17:58)
 

Слешы походу форум вставил...

<> - это не равно? Собственно там всего два значения 0 и 1...
А NOW - не функция? После нее скобок не надыть?

   
 
 автор: Trianon   (26.01.2008 в 22:52)   письмо автору
 
   для: devil943   (26.01.2008 в 22:32)
 

>Слешы походу форум вставил...

Господа cheops & K°! Это правда чтоли? Уже не первый раз замечаю...


> <> - это не равно? Собственно там всего два значения 0 и 1...
Именно не равно.

>А NOW - не функция? После нее скобок не надыть?
Функция. Надыть. Поправил.

   
 
 автор: devil943   (26.01.2008 в 23:26)   письмо автору
 
   для: Trianon   (26.01.2008 в 22:52)
 

Не рабит :(

   
 
 автор: Trianon   (26.01.2008 в 23:42)   письмо автору
 
   для: devil943   (26.01.2008 в 23:26)
 

А у Вас больше одного пользователя сейчас?

   
 
 автор: devil943   (27.01.2008 в 00:39)   письмо автору
 
   для: Trianon   (26.01.2008 в 23:42)
 

Да :)

   
 
 автор: Trianon   (27.01.2008 в 01:27)   письмо автору
 
   для: devil943   (27.01.2008 в 00:39)
 

Как выглядит окончательный фрагмент кода?

   
 
 автор: devil943   (27.01.2008 в 01:31)   письмо автору
 
   для: Trianon   (27.01.2008 в 01:27)
 

if($_SESSION['login'] != "") {
    $session_id = session_id();
    mysql_query("UPDATE `users` SET `time_last` = NOW(), `id_session` = '$session_id', `status` = '1' WHERE `login` = '$_SESSION[login]';");          
    mysql_query("UPDATE `users` SET `status` = 0 WHERE `status` <> 0 AND NOW() > (time_last + INTERVAL 20 MINUTE);");    
}

   
 
 автор: Trianon   (27.01.2008 в 01:38)   письмо автору
 
   для: devil943   (27.01.2008 в 01:31)
 

а зачем второй запрос под условием?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования