include Characters with same amount of XPs in Character ranking and sort them randomly

This commit is contained in:
coderkun 2014-04-28 15:31:11 +02:00
commit 2669359076
2 changed files with 7 additions and 7 deletions

View file

@ -145,7 +145,7 @@
// Get ranking // Get ranking
$ranking = array( $ranking = array(
'superior' => $this->Characters->getSuperiorCharacters($seminary['id'], $character['xps'], \nre\configs\AppConfig::$misc['ranking_range']), '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 // Get Quest topics

View file

@ -299,7 +299,7 @@
'INNER JOIN characters_characterroles ON characters_characterroles.character_id = characters.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 = ? '. 'INNER JOIN characterroles ON characterroles.id = characters_characterroles.characterrole_id AND characterroles.name = ? '.
'WHERE charactertypes.seminary_id = ? AND characters.xps > ? '. 'WHERE charactertypes.seminary_id = ? AND characters.xps > ? '.
'ORDER BY characters.xps ASC '. 'ORDER BY characters.xps ASC, RAND() '.
'LIMIT ?', 'LIMIT ?',
'sidd', 'sidd',
'user', 'user',
@ -316,7 +316,7 @@
* @param int $count Count of Characters to determine * @param int $count Count of Characters to determine
* @return array List of inferior Characters * @return array List of inferior Characters
*/ */
public function getInferiorCharacters($seminaryId, $xps, $count) public function getInferiorCharacters($seminaryId, $characterId, $xps, $count)
{ {
return $this->db->query( 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 '. '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 charactertypes ON charactertypes.id = characters.charactertype_id '.
'INNER JOIN characters_characterroles ON characters_characterroles.character_id = characters.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 = ? '. 'INNER JOIN characterroles ON characterroles.id = characters_characterroles.characterrole_id AND characterroles.name = ? '.
'WHERE charactertypes.seminary_id = ? AND characters.xps < ? '. 'WHERE charactertypes.seminary_id = ? AND characters.xps <= ? AND characters.id <> ? '.
'ORDER BY characters.xps DESC '. 'ORDER BY characters.xps DESC, RAND() '.
'LIMIT ?', 'LIMIT ?',
'sidd', 'sidid',
'user', 'user',
$seminaryId, $xps, $count $seminaryId, $xps, $characterId, $count
); );
} }