Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с датой в sql запросе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ridvik
Отправлено: 28 Мая, 2013 - 07:47:48
Post Id


Частый гость


Покинул форум
Сообщений всего: 244
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Всем доброе утро. Собственно нужна помощь по выборке из бд)) Нужно в таблице бд отыскать строки, где разница со временем больше 5 минут, либо меньше. Смысл вот в чем: пользователь каждые 5 мин обновляет время допустим в таблице test в поле status_time. И нужно вот из этой таблицы посчитать. у скольких пользователей дата, занесенная в бд, была занесена не больше 5 минут назад. Типо сессия такая небольшая. на уровне пхп я еще вроде могу сделать, но как я понял тут нужно на уровне sql запроса. Помогите пожалуйста. Вот что я имею в данный момент:
PHP:
скопировать код в буфер обмена
  1. // Функция расчета игроков онлайн в команде
  2. function teams_players_online () {
  3. global $main;
  4. try {
  5.         teams_checkteamid ();
  6.         list($id,$time) = $main->db->sql_fetchrow($main->db->sql_query("SELECT id,status_time FROM ".PLAYERS." WHERE tid={$_GET['id']}"));
  7.         $date = date("Y-m-d ");
  8.         $date .= date("H")+3;
  9.         $date .= date(":i:s");
  10.         $s = $date - $time;
  11.         //
  12.         $now = strtotime("$date");
  13.         $date2 = strtotime("$time");
  14.         $timeU = $now - $date2;
  15.         $min = 60;
  16.         $hour = 60 * 60;
  17.         $day = 60 * 60 * 24;
  18.         //     
  19.         $r_days = floor ($timeU / $day);
  20.     $r_hours = floor (($timeU - ($r_days * $day))/$hour);
  21.     $r_min = floor (($timeU - ($r_days * $day) - ($r_hours * $hour))/$min);
  22.     $r_sec = (($timeU - ($r_days * $day) - ($r_hours * $hour) - ($r_min * $min)));
  23.         //
  24.         //return $r_days." Дней ".$r_hours." Часов ".$r_min." Минут ".$r_sec." Секунд";
  25.         //list($counts) = $main->db->sql_fetchrow($main->db->sql_query("SELECT COUNT(*) FROM ".PLAYERS)." WHERE $r_min > 5");
  26.                 If (($r_min > 5) OR ($r_hours > 0) OR ($r_days > 0)) return 'Offline';
  27.                 else return 'Online';
  28.         //
  29.         //return $date.' - '.$time.' = '.$s;
  30.        
  31.        
  32.         }
  33.                 catch(Exception $ex) {
  34.                 echo $ex->getMessage();
  35.         }
  36. }
 
 Top
EuGen Администратор
Отправлено: 28 Мая, 2013 - 09:14:37
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table` WHERE `time_field`>NOW() - INTERVAL 5 MINUTE

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ridvik
Отправлено: 28 Мая, 2013 - 15:30:37
Post Id


Частый гость


Покинул форум
Сообщений всего: 244
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Вот такая ошибка выходит
CODE (htmlphp):
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected ';' in C:\EleanorServ\www\localhost\hooks\teams\teams.other.php on line 48


48 строка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. list($counts) = $main->db->sql_fetchrow($main->db->sql_query("SELECT * FROM `dynamit_players` WHERE `status_time`>NOW() - INTERVAL 5 MINUTE");



что не так? вроде банальное же копирование должно быть?)
 
 Top
improbable
Отправлено: 28 Мая, 2013 - 16:10:10
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




ridvik пишет:
Вот такая ошибка выходит
CODE (htmlphp):
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected ';' in C:\EleanorServ\www\localhost\hooks\teams\teams.other.php on line 48


48 строка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. list($counts) = $main->db->sql_fetchrow($main->db->sql_query("SELECT * FROM `dynamit_players` WHERE `status_time`>NOW() - INTERVAL 5 MINUTE");



что не так? вроде банальное же копирование должно быть?)

Перед ещё одну закрывающую круглую скобку
 
 Top
ridvik
Отправлено: 28 Мая, 2013 - 16:26:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 244
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


improbable пишет:
ridvik пишет:
Вот такая ошибка выходит
CODE (htmlphp):
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected ';' in C:\EleanorServ\www\localhost\hooks\teams\teams.other.php on line 48


48 строка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. list($counts) = $main->db->sql_fetchrow($main->db->sql_query("SELECT * FROM `dynamit_players` WHERE `status_time`>NOW() - INTERVAL 5 MINUTE");



что не так? вроде банальное же копирование должно быть?)

Перед
ещё одну закрывающую круглую скобку

и правда)) чет аж стремно самому за такую ошибку((( поставил скобку, вроде работает))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB