Всем доброе утро. Собственно нужна помощь по выборке из бд)) Нужно в таблице бд отыскать строки, где разница со временем больше 5 минут, либо меньше. Смысл вот в чем: пользователь каждые 5 мин обновляет время допустим в таблице test в поле status_time. И нужно вот из этой таблицы посчитать. у скольких пользователей дата, занесенная в бд, была занесена не больше 5 минут назад. Типо сессия такая небольшая. на уровне пхп я еще вроде могу сделать, но как я понял тут нужно на уровне sql запроса. Помогите пожалуйста. Вот что я имею в данный момент:
PHP:
скопировать код в буфер обмена
// Функция расчета игроков онлайн в команде function teams_players_online () { global $main; try { teams_checkteamid (); list($id,$time) = $main->db->sql_fetchrow($main->db->sql_query("SELECT id,status_time FROM ".PLAYERS ." WHERE tid={$_GET['id']}")); $s = $date - $time; // $timeU = $now - $date2; $min = 60; $hour = 60 * 60; $day = 60 * 60 * 24; // $r_days = floor ($timeU / $day); $r_hours = floor (($timeU - ($r_days * $day))/$hour); $r_min = floor (($timeU - ($r_days * $day) - ($r_hours * $hour))/$min); $r_sec = (($timeU - ($r_days * $day) - ($r_hours * $hour) - ($r_min * $min))); // //return $r_days." Дней ".$r_hours." Часов ".$r_min." Минут ".$r_sec." Секунд"; //list($counts) = $main->db->sql_fetchrow($main->db->sql_query("SELECT COUNT(*) FROM ".PLAYERS)." WHERE $r_min > 5"); If (($r_min > 5) OR ($r_hours > 0) OR ($r_days > 0)) return 'Offline'; else return 'Online'; // //return $date.' - '.$time.' = '.$s; } catch(Exception $ex) { echo $ex->getMessage(); } }
|