burger-quizz/dao/reponse_user_dao.php

111 lines
3.3 KiB
PHP

<?php
/**
* @brief Classe DAO relatif à la classe reponse_user
*/
class reponse_user_dao extends dao {
/**
* @brief Fonction gérant la récupération des réponses, de la table link_game_question
* @arg $idgame identifiant de la partie (% pour tout)
* @arg $idquest identifiant de la question (% pour tout)
* @return tableau d'objet reponse_user ou un objet reponse_user
*/
public function select($idgame, $idquest = NULL) {
//Inclusion de l'objet reponse_user
include_once 'metier/reponse_user.php';
//Mise en place de la première condition
$cond1 = "`game_id`='$idgame'";
//Si on a mis un %, on charge toutes les partie => la condition devient TRUE
if ($idgame == "%") {
$cond1 = "TRUE";
}
//Mise en place de la seconde condition
$cond2 = "`question_id`='$idquest'";
//Si on a mis un %, on charge toutes les questions => la condition devient TRUE
if ($idquest == "%") {
$cond2 = "TRUE";
}
//On met en place la requête
$query = "SELECT * FROM `link_game_question` WHERE $cond1 AND $cond2";
//On récupère les données
$result = $this->db->query($query);
//Si on a pas de données, inutilise d'aller plus loin
if (!$result) {
return FALSE;
}
//On parse les résultats en fonction de chaque cas
if ($idquest == "%") {
//On demande toutes les questions du jeu spécifié
$return = array();
$i = 0;
//On boucle pour chaque occurence
foreach ($result as $row) {
$return[$i] = new reponse_user($row["game_id"], $row["question_id"], $row["reponse"]);
$i++;
}
} else {
//On demande une seule partie
$return = $result->fetch();
}
//On retourne les résultats
return $return;
}
/**
* @brief Insert un objet reponse_user dans la base de données
* @arg $objet objet reponse_user à inserer
*/
public function insert(&$objet) {
//Récupération des données
$game_id = $objet->getGame();
$question_id = $objet->getQuestion();
$reponse = $objet->getReponse();
//Mise en place de la requête
$query = "INSERT INTO `link_game_question`
(`game_id`,`question_id`,`reponse`)
VALUES ('$game_id','$question_id','$reponse')";
//Envoie de 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 mais nécessaire pour l'héritage de DAO
* @note on ne peut pas mettre à jour les réponses de l'utilisateur
*/
public function update(&$objet) {
//On ne fait rien
}
/**
* @brief Fonction obsolète mais nécessaire pour l'héritage de DAO
* @note la réponse de l'utilisateur est automatiquement supprimée par la suppression de la partie elle-même, via un ON DELETE CASCADE
*/
public function delete($idgame) {
//One ne fait rien
}
}
?>