121 lines
3.3 KiB
PHP
121 lines
3.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @brief Représente un objet d'accès à la base de données relatif à l'objet game
|
|
*/
|
|
|
|
class game_dao extends dao {
|
|
|
|
/**
|
|
* @brief Récupère un objet de game
|
|
* @arg $id identifiant de la partie à récupérer
|
|
*/
|
|
public function select($id) {
|
|
//Mise en place de la requête
|
|
$query = "SELECT * FROM `game` WHERE `id`='$id'";
|
|
|
|
//On récupère les données
|
|
$result = $this->db->query($query)->fetch();
|
|
|
|
//On retourne l'objet frâichement crée
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* @brief Récupère toutes les partie relatives à un joueur
|
|
* @arg $login login du joueur permettant de récupérer les partie qui lui sont associée
|
|
* @return tableau de lignes de la base de données ou FALSE
|
|
*/
|
|
public function selectByLogin($login) {
|
|
//Mise en place de la requête
|
|
$query = "SELECT * FROM `game` WHERE `user_login`='$login' ORDER BY date DESC";
|
|
|
|
//On récupère les données
|
|
$result = $this->db->query($query)->fetchAll();
|
|
|
|
//On retourne les données
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* @brief Compte le nombre de jeux effectués par chaque joueurs
|
|
*/
|
|
public function countGame() {
|
|
//Création de la requête
|
|
$query = "SELECT COUNT(*) AS nb, user_login FROM game GROUP BY user_login ORDER BY user_login ASC";
|
|
|
|
//Récupération des données
|
|
$result = $this->db->query($query)->fetchAll();
|
|
|
|
//On retourne les données
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* @brief Insert une occurence game relative à l'objet passé
|
|
* @arg $objet objet game à ajouter dans la base de données
|
|
*/
|
|
public function insert(&$objet) {
|
|
//On stocke les données à ajouter
|
|
$user = $objet->getUserLogin();
|
|
$length = $objet->getLength();
|
|
|
|
//On met en place la requête
|
|
$query = "INSERT INTO `game`(`user_login`,`length`, `date`) VALUES ('$user','$length', NOW())";
|
|
|
|
//On envoie la requête
|
|
try {
|
|
$this->db->query($query);
|
|
return TRUE;
|
|
} catch (Exception $ex) {
|
|
if (config::$debug) {
|
|
echo $ex->getMessage();
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief Fonction obsolète
|
|
* @note il est impossible de faire une mise à jour d'une partie via le site
|
|
*/
|
|
public function update(&$objet) {
|
|
//On ne fait rien
|
|
}
|
|
|
|
/**
|
|
* @brief Supprime une occurence game de la base de données
|
|
* @arg $id identifiant de la partie à supprimer
|
|
* @note on utilise le ON DELETE CASCADE pour supprimer les réponses associées. La BDD reste donc cohérente
|
|
*/
|
|
public function delete($id) {
|
|
//Mise en place de la requête SQL
|
|
$query = "DELETE FROM `game` WHERE `id`='$id'";
|
|
|
|
//On envoie la requête SQL
|
|
$result = $this->db->query($query);
|
|
|
|
//On renvoie si oui ou non on a réussi la requête
|
|
if ($result->rowCount() == 0) {
|
|
return FALSE;
|
|
} else {
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
public function getLastId() {
|
|
//Mise en place de la requête SQL
|
|
$query = "SELECT MAX(id) FROM game LIMIT 1";
|
|
|
|
//On envoie la requête SQL
|
|
$result = $this->db->query($query)->fetch();
|
|
|
|
//On retourne le résultat
|
|
return $result;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
?>
|