connection = (new ConnectClass)->connect(); }catch(PDOException $e){ throw new PDOException($e->getMessage(), $e->getCode(), $e); } } public function insertKeyword(string $keyword): void { $query = "INSERT INTO Keyword(word) VALUES(:word)"; $this->connection->executeQuery($query, array( ':word' => array($keyword, PDO::PARAM_STR) )); } public function deleteKeyword(string $keyword): void { $query = "DELETE FROM Keyword WHERE word = :word"; $this->connection->executeQuery($query, array( ':word' => array($keyword, PDO::PARAM_STR) )); } public function getAllKeyword(): array { $query = "SELECT * FROM Keyword"; $this->connection->executeQuery($query); return $this->connection->getResults(); } 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) )); $tab = []; foreach ($this->connection->getResults() as $result) { $tab[] = $result["word"]; } return $tab; } /** * 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 getKeywordsContentByCategorize(int $id): array { $query = "SELECT k.* FROM Keyword k, Categorize c WHERE k.word = c.keyword AND c.response = :id"; return $this->getKeywordByAssociation($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 getKeywordByAssociation(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; } }