Files
post-grachelor-web/allhighscores.php
2017-04-21 10:04:52 +02:00

43 lines
1.6 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: leanderschmedemann
* Date: 10.04.17
* Time: 13:24
*/
require_once('includes.inc.php');
$data = array();
$error = 0;
$cid = isset($_GET['category']) ? $_GET['category'] : -1;
$limit = isset($_GET['limit']) ? $_GET['limit'] : 10;
$offset = isset($_GET['offset']) ? $_GET['offset'] : 0;
$db = new Database();
if($cid == -1) {
$overview = $db->query('SELECT "name", "highscore" FROM "Users" ORDER BY "highscore" DESC
LIMIT $1 OFFSET $2', array($limit, $offset))['data'];
foreach($overview as $row) {
$name = $row['name'];
$score = $row['highscore'];
$place = $db->query('SELECT COUNT(*) FROM "Users" WHERE "highscore" > $1', array($score))['data'][0]['count'] + 1;
$data[] = array('place' => $place, 'name' => $name, 'score' => $score);
}
} else {
$overview = $db->query('SELECT u."name", COALESCE(h."score", -1) AS "score"
FROM "Users" u RIGHT OUTER JOIN "Highscores" h ON u."ID" = h."Users_ID"
WHERE h."Categories_ID" = $1
ORDER BY COALESCE(h."score", -1) DESC
LIMIT $2 OFFSET $3', array($cid, $limit, $offset))['data'];
foreach($overview as $row) {
$name = $row['name'];
$score = $row['score'];
//$score = (isset($score) AND $score != NULL) ? ($row['score']) : -1;
$place = $db->query('SELECT COUNT(*) FROM "Highscores" WHERE "score" > $1 AND "Categories_ID" = $2',
array($score, $cid))['data'][0]['count'] + 1;
$data[] = array('place' => $place, 'name' => $name, 'score' => $score);
}
}
$response = Database::create_response($data, $error);
print_r($response);