public function recuperarProvaPerguntaRespondida(Prova $prova, Aluno $aluno){ $query ="SELECT tbl_prova_pergunta.prova_pergunta AS prova_pergunta, tbl_prova_pergunta.topico AS topico, tbl_prova_pergunta.tipo_pergunta AS tipo_pergunta, tbl_prova_pergunta.titulo AS titulo, tbl_prova_pergunta.dificuldade AS dificuldade, tbl_prova_pergunta.fonte AS fonte, tbl_prova_pergunta.peso AS peso, tbl_prova_pergunta.pergunta_origem AS pergunta_origem FROM tbl_prova_pergunta WHERE tbl_prova_pergunta.prova_pergunta = $id_pergunta "; $banco = $this->getBancoDados(); $pergunta = NULL; $retorno = $banco->executaSQL($query); if($retorno != NULL) { if ($banco->numRows($retorno) == 0){ throw new Exception("Nenhuma pergunta encontrado.",0); } while($linha = $banco->fetchArray($retorno)) { $sessionFacade = new SessionFacade($banco); $obj_topico = $sessionFacade->recuperarTopico($linha["topico"]); $obj_tipo_pergunta = $sessionFacade->recuperarTipoPergunta($linha["tipo_pergunta"]); $pergunta = new ProvaPergunta(); $pergunta->setId($linha['prova_pergunta']); $pergunta->setTopico($obj_topico); $pergunta->setTipoPergunta($obj_tipo_pergunta); $pergunta->setTitulo($linha["titulo"]); $pergunta->setDificuldade($linha["dificuldade"]); $pergunta->setFonte($linha["fonte"]); $pergunta->setPeso($linha["peso"]); $pergunta->setPerguntaOrigem($linha["pergunta_origem"]); $query ="SELECT tbl_prova_resposta.prova_resposta AS prova_resposta, tbl_prova_resposta.prova_pergunta AS prova_pergunta, tbl_prova_resposta.resposta_texto AS resposta_texto, tbl_prova_resposta.resposta_correta AS resposta_correta, tbl_prova_resposta.resposta_filho AS resposta_filho FROM tbl_prova_resposta JOIN tbl_prova_pergunta USING(prova_pergunta) WHERE tbl_prova_pergunta.prova_pergunta = $id_pergunta"; if ($obj_tipo_pergunta->getId()=="4" OR $obj_tipo_pergunta->getId()=="5"){ $query .= " AND tbl_resposta.resposta_filho IS NOT NULL "; } $resposta_item = NULL; $retorno_item = $banco->executaSQL($query); if($retorno_item != NULL) { while($linha_item = $banco->fetchArray($retorno_item)) { $resposta_item = $sessionFacade->recuperarProvaResposta($linha_item["prova_resposta"]); $pergunta->addResposta($resposta_item); } } } return $pergunta; } else { throw new Exception("Erro ao recuperar ProvaPergunta ($query)"); } }
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)"); } }
public function recuperarPergunta($id_pergunta){ $query ="SELECT tbl_pergunta.pergunta AS pergunta, tbl_pergunta.topico AS topico, tbl_pergunta.tipo_pergunta AS tipo_pergunta, tbl_pergunta.titulo AS titulo, tbl_pergunta.dificuldade AS dificuldade, tbl_pergunta.fonte AS fonte, tbl_pergunta.ativa AS ativa FROM tbl_pergunta WHERE tbl_pergunta.pergunta = $id_pergunta "; $banco = $this->getBancoDados(); $pergunta = NULL; $retorno = $banco->executaSQL($query); if($retorno != NULL) { if ($banco->numRows($retorno) == 0){ throw new Exception("Nenhuma pergunta encontrado.",0); } while($linha = $banco->fetchArray($retorno)) { $sessionFacade = new SessionFacade($banco); $obj_topico = $sessionFacade->recuperarTopico($linha["topico"]); $obj_tipo_pergunta = $sessionFacade->recuperarTipoPergunta($linha["tipo_pergunta"]); $pergunta = new Pergunta(); $pergunta->setId($linha['pergunta']); $pergunta->setTopico($obj_topico); $pergunta->setTipoPergunta($obj_tipo_pergunta); $pergunta->setTitulo($linha["titulo"]); $pergunta->setDificuldade($linha["dificuldade"]); $pergunta->setFonte($linha["fonte"]); $pergunta->setAtiva($linha["ativa"]); $query ="SELECT tbl_resposta.resposta AS resposta, tbl_resposta.pergunta AS pergunta, tbl_resposta.resposta_texto AS resposta_texto, tbl_resposta.resposta_correta AS resposta_correta, tbl_resposta.resposta_filho AS resposta_filho FROM tbl_resposta JOIN tbl_pergunta USING(pergunta) WHERE tbl_pergunta.pergunta = $id_pergunta"; if ($obj_tipo_pergunta->getId()=="4" or $obj_tipo_pergunta->getId()=="5"){ $query .= " AND tbl_resposta.resposta_filho IS NOT NULL "; } $resposta_item = NULL; $retorno_item = $banco->executaSQL($query); if($retorno_item != NULL) { while($linha_item = $banco->fetchArray($retorno_item)) { /* COMENTADO - ACHO que esta parte toda nao precisa, e sim somente da parte de baizo...testar e se der algum problema voltar a tras. if (strlen(trim($linha_item["resposta_filho"]))>0){ $obj_resposta_filho = $sessionFacade->recuperarResposta($linha_item["resposta_filho"]); }else{ $obj_resposta_filho = NULL; } $resposta_item = new Resposta(); $resposta_item->setId($linha_item['resposta']); $resposta_item->setPergunta($linha_item['pergunta']); $resposta_item->setRespostaTexto($linha_item['resposta_texto']); $resposta_item->setRespostaCorreta($linha_item['resposta_correta']); $resposta_item->setRespostaFilho($obj_resposta_filho); $pergunta->addResposta($resposta_item); */ $resposta_item = $sessionFacade->recuperarResposta($linha_item["resposta"]); $pergunta->addResposta($resposta_item); } } } return $pergunta; } else { throw new Exception("Erro ao recuperar Pergunta ($query)"); } }