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)"); 
		}
	}
Example #2
0
	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)"); 
		}
	}
Example #3
0
	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)"); 
		}
	}