diff --git a/app/model/Partie.php b/app/model/Partie.php index d76587f6b6a6adb1753bc3673ef07a0c6973355c..fe5a9c0e5f2d41f2d75dfa50d2dfd8df91044bac 100644 --- a/app/model/Partie.php +++ b/app/model/Partie.php @@ -56,10 +56,17 @@ class Partie extends Model private static function classeur($score, $id_jeu){ $db = Database::getInstance(); - $sql = "SELECT classement FROM R_joueur_jeu WHERE ;"; + $sql = "SELECT classement, score FROM R_joueur_jeu WHERE jeu = :id_jeu SORT BY classement DESC;"; $stmt = $db->prepare($sql); - - + if($stmt->execute(array(":id_jeu" => $id_jeu))) { + while ($tmp = $stmt->fetch()) { + if ($score <= $tmp['score']) + { + return $tmp['classement'] + 1; + } + } + } + return 1; } @@ -68,19 +75,23 @@ class Partie extends Model $datestr = date("Y-m-d H:i:s"); $sql0 = "SELECT id FROM R_jeu WHERE nom = :nom_jeu;"; $sql1 = "INSERT INTO R_partie (id_jeu, date) VALUES (:id_jeu, :date);"; - $sql2 = "SELECT slug FROM R_joueur WHERE pseudo = :joueur;"; + $sqlp = "SELECT id FROM R_partie WHERE id_jeu = :id_jeu AND date = :date;"; + $sql2 = "SELECT id FROM R_joueur WHERE nom = :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, :id_joueur, :classement, :score);"; - $sql5 = "UPDATE R_joueur_jeu SET score = :new_score WHERE joueur = :id_joueur AND jeu = :id_jeu;"; - $sqlN = "INSERT INTO R_joueur_jeu (joueur, jeu, score, classement) VALUES (:id_joueur, :id_jeu, :score, :classement);"; + $sql4 = "INSERT INTO R_joueur_partie (partie, joueur, classement, score, id_jeu) + VALUES (:id_partie, :id_joueur,:classement, :score, :id_jeu);"; + $sql5 = "UPDATE R_joueur_jeu SET score = :new_score, classement = :new_classement WHERE joueur = :id_joueur AND jeu = :id_jeu;"; + $sqlN = "INSERT INTO R_joueur_jeu (joueur, jeu, score) VALUES (:id_joueur, :id_jeu, :score);"; + $sql6 = "UPDATE R_joueur_jeu SET classement = classement + 1 WHERE classement > :new_classement;"; $stmt0 = $db->prepare($sql0); $stmt1 = $db->prepare($sql1); + $stmtp = $db->prepare($sqlp); $stmt2 = $db->prepare($sql2); $stmt3 = $db->prepare($sql3); $stmt4 = $db->prepare($sql4); $stmt5 = $db->prepare($sql5); - + $stmt6 = $db->prepare($sql6); + print($nom_jeu); if($stmt0->execute(array(":nom_jeu" => $nom_jeu))) { if($row = $stmt0->fetch()) { @@ -90,6 +101,8 @@ class Partie extends Model if($stmt1->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr))) { + $stmtp->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr)); + $id_partie = $stmtp->fetch()['id']; $m = count($joueurs); $id_joueur = array_fill(0, $m, 0); for ($j = 0; $j<$m; $j++){ @@ -109,17 +122,21 @@ class Partie extends Model $old_score[$j] = $row[0]; } else { - $old_score[$j] = 1000; - $classement = Partie::classeur($score); $stmtN = $db->prepare($sqlN); - if($stmtN->execute(array(":id_joueur" => $id_joueur[$j], ":id_jeu" => $id_jeu, ":score" => 1000, ":classement" => $classement))){ - + if($stmtN->execute(array(":id_joueur" => $id_joueur[$j], ":id_jeu" => $id_jeu, ":score" => 1000))){ + echo "insertion joueur $j<br />"; + } + else{ + echo "stmt n, dc <br />"; + print_r($id_joueur); + print($id_jeu); + die(); } } } else - echo "stmt3, dc"; + echo "stmt3, dc<br />"; } $diff_scores = ELO_scores($scores, $scores, 32); $classement = self::calcul_classement($diff_scores); @@ -127,31 +144,35 @@ class Partie extends Model print_r($diff_scores); for($j = 0; $j<$m; $j++) { - if($stmt4->execute(array(":id_jeu" => $id_jeu, - ":id_joueur" => $id_joueur[$j], + if($stmt4->execute(array(":id_partie" => $id_partie, + ":id_joueur" => $id_joueur[$j], "id_jeu" => $id_jeu, ":classement" => $classement[$j], ":score" => $old_score[$j]))) { $newS = $old_score[$j] + $diff_scores[$j]; print($newS); - + $classement_jeu = Partie::classeur($newS, $id_jeu); if ($stmt5->execute(array(":new_score" => $newS, - ":id_jeu" => $id_jeu, ":id_joueur" => $id_joueur[$j])) + ":id_jeu" => $id_jeu, ":id_joueur" => $id_joueur[$j], ":new_classement" => $classement_jeu)) ) { - //C'est dans la boite - echo "works well enough"; + if ($stmt6->execute(array(":new_classement" => $classement_jeu))){ + //C'est dans la boite + echo "works well enough<br />"; + } + else + echo "stmt6, dc<br />"; } else - echo "stmt5, dc"; + echo "stmt5, dc<br />"; } else - echo "stmt4, dc"; + echo "stmt4, dc<br />"; } } else - echo "stmt1, dc"; + echo "stmt1, dc<br />"; } } else { - echo "Arise, ça marche pas..."; die(); + echo "Arise, ça marche pas...<br />"; die(); } }