예제 #1
0
 public function getPopularGames($playerId, $time, $includeGamesinDevelopment)
 {
     if ($time == 0) {
         $queryInterval = '1 DAY';
     } else {
         if ($time == 1) {
             $queryInterval = '7 DAY';
         } else {
             if ($time == 2) {
                 $queryInterval = '1 MONTH';
             }
         }
     }
     if ($includeGamesinDevelopment) {
         $query = "SELECT media.file_path as file_path, temp.game_id, temp.name, temp.description, temp.count FROM (SELECT games.game_id, games.name, games.description, games.icon_media_id, COUNT(DISTINCT player_id) AS count FROM games INNER JOIN player_log ON games.game_id = player_log.game_id WHERE player_log.timestamp BETWEEN DATE_SUB(NOW(), INTERVAL " . $queryInterval . ") AND NOW() GROUP BY games.game_id HAVING count > 1) as temp LEFT JOIN media ON temp.icon_media_id = media.media_id GROUP BY game_id HAVING count > 1 ORDER BY count DESC LIMIT 20";
     } else {
         $query = "SELECT media.file_path as file_path, temp.game_id, temp.name, temp.description, temp.count FROM (SELECT games.game_id, games.name, games.description, games.icon_media_id, COUNT(DISTINCT player_id) AS count FROM games INNER JOIN player_log ON games.game_id = player_log.game_id WHERE ready_for_public = TRUE AND player_log.timestamp BETWEEN DATE_SUB(NOW(), INTERVAL " . $queryInterval . ") AND NOW() GROUP BY games.game_id HAVING count > 1) as temp LEFT JOIN media ON temp.icon_media_id = media.media_id GROUP BY game_id HAVING count > 1 ORDER BY count DESC LIMIT 20";
     }
     $gamesRs = Module::query($query);
     $games = array();
     while ($game = @mysql_fetch_object($gamesRs)) {
         $gameObj = new stdClass();
         $gameObj = Games::getFullGameObject($game->game_id, $playerId, 0, 9999999999, 0, 0);
         if ($gameObj != NULL) {
             $gameObj->count = $game->count;
             $games[] = $gameObj;
         }
     }
     return new returnData(0, $games, NULL);
 }