con = $con; } public function creerPartie(){ $query = "SELECT * FROM Enigme"; $this->con->executeQuery($query); $results = $this->con->getResults(); $query= "SELECT max(p.id) FROM PARTIE p;"; $this->con->executeQuery($query); $max=$this->con->getResults()[0]; $partie=PartieFactory::createPartie($max,$results); $query= "INSERT INTO Partie VALUES (:idPartie,:idEnigme)"; $this->con->executeQuery($query, array(':idPartie' => array($partie->getIdPartie(), PDO::PARAM_STR))); foreach($partie->getListeEnigme() as $Enigme){ $query= "INSERT INTO Contenir VALUES (:idPartie, :idEnigme)"; $this->con->executeQuery($query, array( ':idPartie' => array($partie->getIdPartie(), PDO::PARAM_STR), ':idEnigme' => array($Enigme->getIdEnigme(), PDO::PARAM_STR))); } } public function delete(string $idPartie){ $query= "DELETE FROM Partie WHERE id = :idPartie"; $this->con->executeQuery($query, array(':idPartie' => array($idPartie, PDO::PARAM_STR))); } public function findOldListePartie() : array{ $query="SELECT * FROM Partie"; $this->con->executeQuery($query); $results = $this->con->getResults(); $query= "SELECT max(p.id) FROM PARTIE p;"; $this->con->executeQuery($query); $max=$this->con->getResults()[0]; $listePartie=array(); foreach($results as $row) { $query = "SELECT e.* FROM Enigme e,Contenir c,Partie p WHERE p.id = c.partie AND c.enigme = e.id"; $this->con->executeQuery($query); $listeEnigme=$this->con->getResults(); $listePartie[]=PartieFactory::createPartie($max,$listeEnigme); } return $listePartie; } public function getDashBoardData(Partie $partie) : array{ $query="SELECT joueur FROM Participer p WHERE p.partie=:idPartie"; $this->con->executeQuery($query,array( 'idPartie' => array($partie->getIdPartie(),PDO::PARAM_INT))); $listeIdJoueur=$this->con->getResults(); $DashboardData=array(); foreach($listeIdJoueur as $joueur){ $points=0; $query="SELECT pe.utilisateur,pe.points,pe.temps,u.pseudo FROM Utilisateur u,PasserEnigme pe,Partie p WHERE points IS NOT NULL AND u.email=pe.utilisateur AND pe.partie=:idPartie AND pe.utilisateur=:joueur GROUP BY pe.utilisateur,pe.points,pe.temps,u.pseudo ORDER BY u.pseudo,pe.temps ASC"; $this->con->executequery($query,array( 'idPartie' => array($partie->getIdPartie(),PDO::PARAM_INT), 'joueur' => array($joueur,PDO::PARAM_STR))); $results=$this->con->getResults(); $joueurDashboardData=array(); foreach($results as $row) { $points+=$row['pe.points']; $joueurDashboardData[]=array($points,$row['pe.temps']); } $DashboardData[]=array($results[0]['u.pseudo'] => $joueurDashboardData); } return $DashboardData; } public function showAll() : void{ $query= "SELECT * FROM Partie"; $this->con->executeQuery($query); $results=$this->con->getResults(); foreach ($results as $row) { echo $row['idPartie'] . '
'; } } }