connection = connect(); } /** * Permet d'ajouter un Keyword dans la base de donnée. * * @param string $keyword Keyword à ajouter * * @return void */ public function insertKeyword(string $keyword) { $query = "INSERT INTO Keyword(word) VALUES(:word)"; $this->connection->executeQuery($query, array( ':word' => array($keyword, PDO::PARAM_STR) )); } /** * Permet de supprimer un keyword de la base de donnée. * * @param string $keyword Keyword à supprimer * * @return void */ public function deleteKeyword(string $keyword) { $query = "DELETE FROM Keyword WHERE word = :word"; $this->connection->executeQuery($query, array( ':word' => array($keyword, PDO::PARAM_STR) )); } /** * Permet de récupérer l'ensemble des Keyword disponible. * * @return array Retourne la liste de l'ensemble des keyword sauvé dans la base de donnée */ public function getAllKeyword(): array { $query = "SELECT * FROM Keyword"; $this->connection->executeQuery($query); return $this->connection->getResults(); } /** * Permet de récupérer tous les Keyword qui font référence à l'id de la réponse possible à une question passée en paramètre. * * @param int $id Id de la possible réponse que l'on veut connaitre ses catégories * * @return array Retourne l'ensemble de tous les Keyword associer à la réponse */ public function getKeywordsContentByReference(int $id): array { $query = "SELECT k.* FROM Keyword k, Reference r WHERE k.word = r.keyword AND r.possibleResponse = :id"; $this->connection->executeQuery($query, array( ':id' => array($id, PDO::PARAM_STR) )); return $this->getKeywordByAssotiation($id , $query); } /** * Permet de récupérer tous les Keyword qui font référence à l'id de la réponse d'un candidat passée en paramètre. * * @param int $id Id de la réponse que l'on veut connaitre ses catégories * * @return array Retourne l'ensemble de tous les Keyword associer à la réponse */ public function getKeywordsContentByCategorieze(int $id): array { $query = "SELECT k.* FROM Keyword k, Categorieze c WHERE k.word = c.keyword AND c.response = :id"; return $this->getKeywordByAssotiation($id , $query); } /** * Permet de récupérer une liste de Keyword selon une requête donnée et un id associé. * * @param int $id Id de l'objet dont on veut ses Keyword associé * @param string $query Requête que l'on veut exécuter * * @return array Retourne la liste des différents Keyword associé à l'objet voulu */ private function getKeywordByAssotiation(int $id, string $query): array { $this->connection->executeQuery($query, array( ':id' => array($id, PDO::PARAM_STR) )); $tab = []; foreach ($this->connection->getResults() as $result) { $tab[] = $result["word"]; } return $tab; } }