prepare($query); $serverscount->bindParam(':gid', $placeid, PDO::PARAM_INT); $serverscount->execute(); $serverscount = $serverscount->rowCount(); //data for pages $total = $serverscount; $pages = ceil($total / $limit); $offset = ($page - 1) * $limit; // Prepare the paged query (if keyword isnt empty, it will be used) $servers = $pdo->prepare($query . ' LIMIT :limit OFFSET :offset'); $servers->bindParam(':gid', $placeid, PDO::PARAM_INT); $servers->bindParam(':limit', $limit, PDO::PARAM_INT); $servers->bindParam(':offset', $offset, PDO::PARAM_INT); $servers->execute(); //final check to see if page is invalid if ($pages > 0) { if ($page > $pages) { http_response_code(400); } } //construct the json array $jsonData = array( "pageCount" => $pages, "pageResults" => (int)$servers->rowCount() ); foreach($servers as $server) { $jobid = $server['jobid']; $playing = jobPlayerCount($server['gameID'], $jobid); $maxplayers = (int)getAssetInfo($server['gameID'])->MaxPlayers; $isowner = isOwner($server['gameID']); $whenStarted = date("h:ia", $server['whenStarted']); $playerslist = $pdo->prepare("SELECT * FROM game_presence WHERE placeid = :p AND jobid = :j AND (lastPing + 50) > UNIX_TIMESTAMP() ORDER BY whenJoined ASC"); $playerslist->bindParam(':p', $placeid, PDO::PARAM_INT); $playerslist->bindParam(':j', $jobid, PDO::PARAM_STR); $playerslist->execute(); $players = array(); foreach($playerslist as $player) { $userid = $player['uid']; $username = getUsername($userid); $thumbnail = getPlayerRender($userid); $playersInfo = array( "userid" => $userid, "username" => $username, "thumbnail" => "https://api.alphaland.cc/users/thumbnail?userId=".$userid."&headshot=true" ); array_push($players, $playersInfo); } $serverInfo = array( "jobid" => $jobid, "playerscount" => $playing, "players" => $players, "maxPlayers" => $maxplayers, "isOwner" => $isowner, "whenStarted" => $whenStarted, ); array_push($jsonData, $serverInfo); } // ... die(json_encode($jsonData));