From 73acf6b1f10ddc18ef9dca023746c3c9cff5fbd3 Mon Sep 17 00:00:00 2001 From: coderkun Date: Mon, 28 Apr 2014 15:31:11 +0200 Subject: [PATCH] include Characters with same amount of XPs in Character ranking and sort them randomly --- controllers/CharactersController.inc | 2 +- models/CharactersModel.inc | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/controllers/CharactersController.inc b/controllers/CharactersController.inc index 7be4ddcb..7bc4d7d5 100644 --- a/controllers/CharactersController.inc +++ b/controllers/CharactersController.inc @@ -145,7 +145,7 @@ // Get ranking $ranking = array( 'superior' => $this->Characters->getSuperiorCharacters($seminary['id'], $character['xps'], \nre\configs\AppConfig::$misc['ranking_range']), - 'inferior' => $this->Characters->getInferiorCharacters($seminary['id'], $character['xps'], \nre\configs\AppConfig::$misc['ranking_range']) + 'inferior' => $this->Characters->getInferiorCharacters($seminary['id'], $character['id'], $character['xps'], \nre\configs\AppConfig::$misc['ranking_range']) ); // Get Quest topics diff --git a/models/CharactersModel.inc b/models/CharactersModel.inc index 3fef517d..4f6b5d54 100644 --- a/models/CharactersModel.inc +++ b/models/CharactersModel.inc @@ -299,7 +299,7 @@ 'INNER JOIN characters_characterroles ON characters_characterroles.character_id = characters.id '. 'INNER JOIN characterroles ON characterroles.id = characters_characterroles.characterrole_id AND characterroles.name = ? '. 'WHERE charactertypes.seminary_id = ? AND characters.xps > ? '. - 'ORDER BY characters.xps ASC '. + 'ORDER BY characters.xps ASC, RAND() '. 'LIMIT ?', 'sidd', 'user', @@ -316,7 +316,7 @@ * @param int $count Count of Characters to determine * @return array List of inferior Characters */ - public function getInferiorCharacters($seminaryId, $xps, $count) + public function getInferiorCharacters($seminaryId, $characterId, $xps, $count) { return $this->db->query( 'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '. @@ -324,12 +324,12 @@ 'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '. 'INNER JOIN characters_characterroles ON characters_characterroles.character_id = characters.id '. 'INNER JOIN characterroles ON characterroles.id = characters_characterroles.characterrole_id AND characterroles.name = ? '. - 'WHERE charactertypes.seminary_id = ? AND characters.xps < ? '. - 'ORDER BY characters.xps DESC '. + 'WHERE charactertypes.seminary_id = ? AND characters.xps <= ? AND characters.id <> ? '. + 'ORDER BY characters.xps DESC, RAND() '. 'LIMIT ?', - 'sidd', + 'sidid', 'user', - $seminaryId, $xps, $count + $seminaryId, $xps, $characterId, $count ); }