Skip to content
Extraits de code Groupes Projets
Valider 1fe5a0e2 rédigé par Eliah REBSTOCK's avatar Eliah REBSTOCK
Parcourir les fichiers

Début de classe Partie avec conception du modèle

parent c7ddf2e3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
2 requêtes de fusion!21Merge de Dev dans Master,!2Dev phoenix
<?php
/**
* Created by PhpStorm.
* User: phoenix
* Date: 25/04/16
* Time: 15:27
*/
class PartieController extends Controller
{
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: phoenix
* Date: 25/04/16
* Time: 15:27
*/
class Partie extends Model
{
public $joueurs, $scores, $lejeu, $date, $slug;
public static function getFromSlug($slug_partie) {
$db = Database::getInstance();
$sql = "SELECT * FROM R_partie WHERE slug = :slug";
$stmt = $db->prepare($sql);
$stmt->setFetchMode(PDO::FETCH_CLASS, "Partie"); // règle le type dans lequel on doit mettre les données (PDO va chercher les attributs de la classe de même nom que ses colonnes de BDD et mettre dedans les valeurs correspondantes)
$stmt->execute(array(":slug" => $slug_partie));
return $stmt->fetch();
}
public static function getList() {
$db = Database::getInstance();
$sql = "SELECT * FROM R_partie";
$stmt = $db->query($sql);
$stmt->setFetchMode(PDO::FETCH_CLASS, "Partie");
return $stmt->fetchAll();
}
public static function checkExists($slug_partie) { // méthode permettant de vérifier si un jeu existe dans la BDD
$db = Database::getInstance(); // on récupère la connexion à la BDD
$sql = "SELECT * FROM R_partie WHERE slug = :slug";
$req = $db->prepare($sql); // on prépare la requête
$req->execute(array(":slug" => $slug_partie)); // on remplace les variables dans la requête
if ($result = $req->fetch()) { // on récupère l'enregistrement, s'il existe
return 1;
}
return 0; // on aurait pu mettre deux return (un dans le if et un ici), mais bon...
}
private static function calcul_classement($R){
$m = count($R);
$R_classement = array_fill(0, $m, 0);
asort($R);
$i = 1;
foreach ($R as $k => $val){
$R_classement[$k] = $i;
$i++;
}
return $R_classement;
}
public static function addPartie($date, $joueurs, $diff_scores, $nom_jeu, $slug_partie) {
$db = Database::getInstance();
$sql0 = "SELECT id_jeu FROM R_jeu WHERE :nom_jeu;";
$sql1 = "INSERT INTO R_partie (id_jeu, date) VALUES (:id_jeu, :date);";
$sql2 = "SELECT slug FROM R_joueur WHERE pseudo = :joueur;";
$sql3 = "SELECT score FROM R_joueur_jeu WHERE joueur = :id_joueur AND jeu = :id_jeu;";
$sql4 = "INSERT INTO R_joueur_partie (partie, joueur, classement, score)
VALUES ((:id_jeu, :date), :id_joueur, :classement, :score);";
$sql5 = "UPDATE INTO R_joueur_jeu (score) VALUES (:new_score);";
$stmt0 = $db->prepare($sql0);
$stmt1 = $db->prepare($sql1);
$stmt2 = $db->prepare($sql2);
$stmt3 = $db->prepare($sql3);
$stmt4 = $db->prepare($sql4);
$stmt5 = $db->prepare($sql5);
if($stmt0->execute(array(":nom_jeu" => $nom_jeu))) {
if($row = $stmt0->fetch()) {
$id_jeu = $row[0];
if($stmt1->execute(array(":id_jeu" => $id_jeu, ":date" => $date)))
{
$m = count($joueurs);
for($j = 0; $j<$m; $j++){
if($stmt2->execute(array(":joueur" => $joueurs[$j])))
{
if($row = $stmt2->fetch()) {
$id_joueur = $row[0];
$classement = self::calcul_classement($diff_scores);
if ($stmt3->execute(array(":id_joueur" => $id_joueur, ":id_jeu" => $id_jeu)))
{
if($row = $stmt3->fetch()) {
$old_score = $row[0];
if($stmt4->execute(array(":id_jeu" => $id_jeu, ":date" => $date,
":id_joueur" => $id_joueur,
":classement" => $classement, ":score" => $old_score))){
if($stmt5->execute(array(":new_score"=> $old_score + $diff_scores[$j])))
{
//C'est dans la boite
}
}
}
}
}
}
}
}
}
}
else {
echo "Arise, ça marche pas..."; die();
}
}
}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Ajout de partie</title>
</head>
<body>
<header>
<h1>Page permettant d'ajouter une partie, par rapport à un jeu donné.</h1>
</header>
<h2>On mettra ici le nom du jeu</h2>
<footer>
<p>Le pied de page</p>
</footer>
</body>
</html>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter