function getGames($db, $max_game, $max_player, $mode, $fid = false, $facebook = false) { $modes = array('joinable' => 0, 'started' => 1, 'ended' => 2, 'all' => -1, 'friends' => -2, 'friends_all' => -3); $m = $modes[$mode]; if ($m == -2) { $friends = filterFriends($db, getFriends($db, $fid, $facebook)); $sql = "SELECT games.gid,games.state,games.numplayers " . "FROM games,plays " . "WHERE plays.gameid=games.gid AND games.state=0 AND games.numplayers<=?"; $s = sizeof($friends); if (is_array($friends)) { if ($s == 0) { return array(); } if ($s == 1) { $sql_mid = " AND plays.playerid=?"; } else { $s--; $sql_mid = " AND ("; for ($i = 0; $i < $s; $i++) { $sql_mid .= "plays.playerid=? OR "; } $sql_mid .= 'plays.playerid=?)'; $sql .= $sql_mid; } } else { return array(); } $sql .= "ORDER BY gid DESC LIMIT ?"; $ids = array($max_player); foreach ($friends as $friend) { $ids[] = $friend['fid']; } $ids[] = $max_game; $query = $db->query($sql, $ids); return $query; } else { if ($m != -1) { $sql = "SELECT `gid`,`state`,`numplayers` FROM `games` WHERE `state`=? AND `numplayers`<= ? ORDER BY gid DESC LIMIT ?"; $query = $db->query($sql, array($m, $max_game, $max_player)); } else { $sql = "SELECT `gid`,`state`,`numplayers` FROM `games` ORDER BY gid DESC LIMIT ?"; $query = $db->query($sql, array($max_game)); } } return $query; }
public function ajax_friends() { $friends = filterFriends($this->db, getFriends($this->db, $this->fid, $this->facebook)); $this->load->view('/player/friends', array('friends' => $friends)); }