public function recuperarProva($id_prova){ $query ="SELECT tbl_prova.prova AS prova, tbl_prova.titulo AS titulo, tbl_prova.disciplina AS disciplina, tbl_prova.professor AS professor, tbl_prova.numero_perguntas AS numero_perguntas, DATE_FORMAT(tbl_prova.data , '%d/%m/%Y %H:%i') AS data, DATE_FORMAT(tbl_prova.data_inicio , '%d/%m/%Y %H:%i') AS data_inicio, DATE_FORMAT(tbl_prova.data_termino , '%d/%m/%Y %H:%i') AS data_termino, dificuldade AS dificuldade, DATE_FORMAT(tbl_prova.liberada , '%d/%m/%Y %H:%i') AS liberada, CASE WHEN CURRENT_TIMESTAMP - tbl_prova.liberada > 0 THEN '' ELSE 'Prova só pode ser aberta após o horário de início.' END AS prova_nao_liberada FROM tbl_prova WHERE tbl_prova.prova = $id_prova "; $banco = $this->getBancoDados(); $prova = NULL; $retorno = $banco->executaSQL($query); if($retorno != NULL) { if ($banco->numRows($retorno) == 0){ throw new Exception("Nenhuma prova encontrada.",0); } while($linha = $banco->fetchArray($retorno)) { $sessionFacade = new SessionFacade($banco); $obj_disciplina = $sessionFacade->recuperarDisciplina($linha["disciplina"]); $obj_professor = $sessionFacade->recuperarProfessor($linha["professor"]); $prova = new Prova(); $prova->setId($linha['prova']); $prova->setTitulo($linha["titulo"]); $prova->setDisciplina($obj_disciplina); $prova->setProfessor($obj_professor); $prova->setNumeroPerguntas($linha["numero_perguntas"]); $prova->setData($linha["data"]); $prova->setDataInicio($linha["data_inicio"]); $prova->setDataTermino($linha["data_termino"]); $prova->setDificuldade($linha["dificuldade"]); $prova->setLiberada($linha["liberada"]); $prova->setProvaNaoLiberada($linha["prova_nao_liberada"]); if (strlen($linha["liberada"])==0){ $prova->setProvaNaoLiberada('O professor ainda não liberou esta prova. Por favor, aguarde.'); } $query ="SELECT tbl_prova_pergunta.prova_pergunta AS pergunta FROM tbl_prova JOIN tbl_prova_pergunta USING(prova) WHERE tbl_prova.prova = $id_prova"; $retorno_item = $banco->executaSQL($query); if($retorno_item != NULL) { while($linha_item = $banco->fetchArray($retorno_item)) { $obj_pergunta = $sessionFacade->recuperarProvaPergunta($linha_item["pergunta"]); $prova->addPergunta($obj_pergunta); } } $query="SELECT tbl_prova_topico.topico FROM tbl_prova_topico WHERE tbl_prova_topico.prova = $id_prova"; $retorno_item = $banco->executaSQL($query); if($retorno_item != NULL) { while($linha_item = $banco->fetchArray($retorno_item)) { $obj_topico = $sessionFacade->recuperarTopico($linha_item["topico"]); $prova->addTopico($obj_topico); } } } return $prova; } else { throw new Exception("Erro ao recuperar Prova ($query)"); } }
$curso = addslashes(trim($_POST['curso'])); $disciplina = addslashes(trim($_POST['disciplina'])); $numero_perguntas = addslashes(trim($_POST['numero_perguntas'])); $data_inicio = addslashes(trim($_POST['data_inicio'])); $data_termino = addslashes(trim($_POST['data_termino'])); $dificuldade = addslashes(trim($_POST['dificuldade'])); $qtde_perguntas = addslashes(trim($_POST['qtde_perguntas'])); $qtde_pergunta_prova = 0; try { $banco->iniciarTransacao(); $prov = new Prova(); $prov->setId($prova); $prov->setTitulo($titulo_prova); $prov->setNumeroPerguntas($numero_perguntas); $prov->setData(date("d/m/Y H:i:s")); $prov->setDataInicio($data_inicio); $prov->setDataTermino($data_termino); $prov->setDificuldade($dificuldade); $prov->setLiberada($data_inicio); if (strlen($disciplina)>0){ $disc = $sessionFacade->recuperarDisciplina($disciplina); $prov->setDisciplina($disc); } $prof = $sessionFacade->recuperarProfessor($_login_professor); $prov->setProfessor($prof);