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 73acf6b1f1
2 changed files with 7 additions and 7 deletions

View file

@ -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

View file

@ -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
);
}