コード例 #1
0
 function getDemoList($startRange, $banCount, $sortBy, $sortDirection, $searchText)
 {
     $searchText = trim($searchText);
     // Remove whitespace from search text
     $searchJoin = "";
     // Prevent SQL injection
     $sortBy = addslashes($sortBy);
     $sortDirection = addslashes($sortDirection);
     $searchText = addslashes($searchText);
     // Prevent SQL Injection
     if ($searchText != null && $searchText != "") {
         $searchJoin = " (d.steam_id LIKE '%" . $searchText . "%' OR d.demo_name LIKE '%" . $searchText . "%') ";
     }
     // Use LEFT JOIN so that bad reasons or serverids still display on the ban list, but as empty values
     // Get list of all demos that fit the criteria
     $demoList = "SELECT d.demo_id, d.steam_id, COALESCE(s.name, 'Bad Server ID') AS servername, d.server_id, d.add_date, r.reason,\n    d.reason_id, d.demo_name, d.offender_name, d.uploader_name, d.uploader_steam_id,\n    (SELECT count(1) FROM gban_ban b WHERE b.steam_id = d.steam_id and b.active = 1) as banned\n    FROM gban_demo d\n    LEFT JOIN gban_reason r ON d.reason_id = r.reason_id\n    LEFT JOIN gban_servers s ON d.server_id = s.server_id ";
     if (!empty($searchJoin)) {
         $demoList .= " WHERE " . $searchJoin;
     }
     $demoList .= "ORDER BY {$sortBy} {$sortDirection}";
     if ($this->bansPerPage > 0) {
         $this->endRange = $this->bansPerPage;
         $demoList .= " LIMIT " . $startRange . ", " . $this->endRange;
     }
     $this->db->sql_query($demoList);
     $demosArray = $this->db->get_array();
     $demos = array();
     for ($i = 0; $i < count($demosArray); $i++) {
         $demo = new Demo();
         $demo->setDemoId($demosArray[$i]['demo_id']);
         $demo->setSteamId($demosArray[$i]['steam_id']);
         $demo->setDemoName($demosArray[$i]['demo_name']);
         $demo->setServer($demosArray[$i]['servername']);
         $demo->setServerId($demosArray[$i]['server_id']);
         $demo->setAddDate($demosArray[$i]['add_date']);
         $demo->setReason($demosArray[$i]['reason']);
         $demo->setReasonId($demosArray[$i]['reason_id']);
         $demo->setOffenderName($demosArray[$i]['offender_name']);
         $demo->setUploaderName($demosArray[$i]['uploader_name']);
         $demo->setUploaderSteamId($demosArray[$i]['uploader_steam_id']);
         $demo->setBanned($demosArray[$i]['banned']);
         // Can only be 0 or 1
         array_push($demos, $demo);
         // Add the demo object to the array
     }
     return $demos;
 }