bdd = new Connector(); $options = array( "where" => array( array("login", "=", $login) ) ); $data = $this->bdd->Select("*", "scores", $options); $this->login = $data[0]['login']; $this->score = $data[0]['score']; } /***************************************************************************** * Méthode getLogin() * * Fonction : Renvoie le login associé au score courant * * * * Paramètres : Aucun * * * * Retour : * * Chaîne de caractères contenant le login associé au score courant * *****************************************************************************/ function getLogin() { return $this->login; } /***************************************************************************** * Méthode getScore() * * Fonction : Renvoie le score de l'objet courant * * * * Paramètres : Aucun * * * * Retour : * * Entier contenant le score de l'objet courant * *****************************************************************************/ function getScore() { return $this->score; } /***************************************************************************** * Méthode getScores() [statique] * * Fonction : Sélectionne un nombre donné dans les meilleurs ou les pires * * scores * * * * Paramètres : * * $nRows (Int) : Nombre de lignes à sélectionner (nombre de scores à * * retourner) * * $direction (String) : Si vaut "desc", sélectionne par ordre décroissant * * (les n meilleurs scores) ; si vaut "asc", * * sélectionne par ordre croissant (les n pires * * scores) * * * * Retour : * * Tableau de n objets Score * *****************************************************************************/ public static function getScores($nRows, $direction = "desc") { $bdd = new Connector(); $options = array( "order by" => array("score", $direction), "limit" => array($nRows) ); $array = $bdd->Select("*", "scores", $options); $scores = array(); foreach($array as $score) { array_push($scores, new Score($score['login'])); } return $scores; } /***************************************************************************** * Méthode add() [statique] * * Fonction : Ajoute un score dans la base de données * * * * Paramètres : * * $login (String) : Login de l'auteur du score à ajouter * * $score (Int) : Score à ajouter * * * * Retour : Aucun * * * * Exceptions : * * higher_score_present : Un score supérieur existe déjà pour ce login dans * * la base de données * *****************************************************************************/ public static function add($login, $score) { $bdd = new Connector(); $options = array( "where" => array( array("login", "=", $login) ) ); if(!$scores = $bdd->Select("*", "scores", $options)) { $values = array( "login" => $login, "score" => $score ); $bdd->Insert("scores", $values); } else { if($score > $scores[0]['score']) { $update = array( "where" => array( array("login", "=", $login) ), "set" => array("score" => $score) ); $bdd->Update("scores", $update); } else { throw new Exception('higher_score_present'); } } } }