/** * Construtor */ public function __construct() { parent::__construct("testes.t_topico"); $this->alvo = new Topico(); $this->maxQuestoes = 5; }
/** * Metodo que salva as notas do teste no banco. * * @param TesteModeloLivro $teste O teste a ter suas notas salvas * @param array $respostas Um array contendo o código da questão e a resposta * * @throws TesteException */ public function salvaRespostas(TesteModeloLivro $teste, array $respostas) { if (!$teste->getId()) { throw new TesteException('O teste informado não é válido'); } $respToSave = array(); //Consultando as questões do teste $querySelect = "select * from testes.{$this->tabela}_questao "; $querySelect .= "where {$this->tabela}_questao_pk_{$this->tabela}={$teste->getId()}"; // $prepSelect = $this->tg->getPDO()->prepare($querySelect); $prepSelect->execute(); if (!$prepSelect->rowCount()) { throw new TesteException('O teste que você tentou salvar ' . 'não é válido'); } while ($resp = $prepSelect->fetchObject()) { $pkQuestao = "pk_{$this->tabela}_questao"; $fkQuestao = "{$this->tabela}_questao_pk_questao"; $tQuestoes = $resp->{$pkQuestao}; $respQ = $respostas[$resp->{$fkQuestao}]; $respToSave[$tQuestoes] = $respQ; } //Salvando as respostas $query = "insert into testes.{$this->tabela}_resposta(" . "{$this->tabela}_resposta_pk_{$this->tabela}_questao, " . "{$this->tabela}_resposta_alternativa" . ') values '; foreach ($respToSave as $key => $value) { $query .= "({$key}, '{$value}'),"; } $query = substr($query, 0, -1); $prepare = $this->tg->getPDO()->prepare($query); return $prepare->execute(); }
/** * Construtor. */ public function __construct() { parent::__construct('testes.t_capitulo'); $this->alvo = new Capitulo(); $this->maxQuestoes = 10; }