prepare("SELECT * FROM `questions` WHERE `id` = ?;"); $req->execute(htmlspecialchars($id)); $data = $req->fetch(); if ($data === false) return null; $question = new Question(); $question->fill($data); return $question; } public static function fromAttachedFile($attached_file) { global $DB; $req = $DB->prepare("SELECT * FROM `questions` WHERE `attached_file` = ?;"); $req->execute([htmlspecialchars($attached_file)]); $data = $req->fetch(); if ($data === false) return null; $question = new Question(); $question->fill($data); return $question; } public function fill($data) { foreach ($data as $key => $value) $this->$key = $value; } public static function getQuestions(Team $from, Team $to) { global $DB; ensure($from->getProblem() == $to->getProblem(), "Les deux équipes doivent travailler sur le même problème."); $req = $DB->prepare("SELECT * FROM `questions` WHERE `from` = ? AND `to` = ?;"); $req->execute([$from->getId(), $to->getId()]); $questions = []; while (($data = $req->fetch()) !== false) { $question = new Question(); $question->fill($data); $questions[] = $question; } if (sizeof($questions) == 0) { $default_questions = ["Slogan ?", "Est-ce que les blagues de R-ev sont drôles ?", "C'est où le WEI ?", "Qui est le plus lourd ?", "Quelle est la réponse à la vie, à l'univers et à tout le reste ?", "Que préférez-vous entre la pratique et la théorie ?"]; for ($_ = 0; $_ < 6; ++$_) { $req = $DB->prepare("INSERT INTO `questions`(`from`, `to`, `problem`, `question`) VALUES (?, ?, ?, ?);"); $req->execute([$from->getId(), $to->getId(), $from->getProblem(), $default_questions[$_]]); } return self::getQuestions($from, $to); } return $questions; } public function getId() { return $this->id; } public function getFrom() { return $this->from; } public function getTo() { return $this->to; } public function getProblem() { return $this->problem; } public function getNumber() { return $this->number; } public function getQuestion() { return $this->question; } public function setQuestion($question) { global $DB; $this->question = $question; $req = $DB->prepare("UPDATE `questions` SET `question` = ? WHERE `id` = ?;"); $req->execute([$question, $this->id]); } public function getAttachedFile() { return $this->attached_file; } public function setAttachedFile($attached_file) { global $DB; $this->attached_file = $attached_file; $req = $DB->prepare("UPDATE `questions` SET `attached_file` = ? WHERE `id` = ?;"); $req->execute([$attached_file, $this->id]); } }