コード例 #1
0
ファイル: class.prova.DAO.php プロジェクト: nowakis/TesteNet
	public function selecionaPerguntas(Prova $prova){

		$banco			= $this->getBancoDados(); 
		$sessionFacade	= new SessionFacade($banco); 

/*		$ppt = $prova->getNumeroPerguntas() / $prova->getQtdeTopico();
		$ppt = number_format($ppt,0);
		if  ($ppt < 1 ){
			$ppt = 1;
		}
		$topicos = array();
		$lista_topicos = array();
		for ($i=0; $i<$prova->getQtdeTopico();$i++){
			array_push($lista_topicos,$prova->getTopico($i)->getId());
		}
		$topicos = $sessionFacade->recuperarPerguntaTopicoOrdenadoDAO($lista_topicos);

		for ($i=0; $i<count($topicos);$i++){
			echo "<br>Tópico: ".$topicos[$i][0]->getDescricao()." / Qtde Perguntas: ".$topicos[$i][1];
			$perguntas = $sessionFacade->recuperarPerguntaTopicoDAO($prova->getTopico($i), $prova->getDificuldade());
			for ($j=0; $j<count($perguntas);$j++){
				$prova->addPergunta($perguntas[$j]);
				echo "<br>Pergunta: ".$perguntas[$j]->getTitulo();
			}
		}
*/

		$qtde_por_vez			= 1;
		$sem_pergunta			= 1;
		$perguntas_inseridas	= array();
		$x_qtde_perguntas		= $prova->getNumeroPerguntas();
		$qtde_perguntas			= $prova->getNumeroPerguntas();

		while ($qtde_perguntas > 0 AND $sem_pergunta > 0){
			$sem_pergunta = 0;
			for ($i=0; $i<$prova->getQtdeTopico();$i++){
				#echo "<br>Tópico: ".$prova->getTopico($i)->getDescricao();
				$perguntas = $sessionFacade->recuperarPerguntaTopicoDAO($prova->getTopico($i), $prova->getDificuldade(), $qtde_por_vez, $perguntas_inseridas);

				for ($j=0; $j<count($perguntas); $j++ ) {
					$perg = $perguntas[$j];

					if ($qtde_perguntas>0){
						$perg_aux = new ProvaPergunta(); 
						$perg_aux->setTopico($perg->getTopico());
						$perg_aux->setTipoPergunta($perg->getTipoPergunta());
						$perg_aux->setTitulo($perg->getTitulo());
						$perg_aux->setDificuldade($perg->getDificuldade());
						$perg_aux->setFonte($perg->getFonte());
						$perg_aux->setPeso( round(10 / $x_qtde_perguntas, 2));
						$perg_aux->setPerguntaOrigem($perg->getId());

	#echo "Qtde: ".$perg->getQtdeResposta();
						for ($w=0;$w<$perg->getQtdeResposta();$w++){
							$perg->getResposta($w)->setId(NULL);
							if (is_object($perg->getResposta($w)->getRespostaFilho())) {
								$perg->getResposta($w)->getRespostaFilho()->setId(NULL);
							}
							$perg_aux->addResposta($perg->getResposta($w));
						}

						$prova->addPergunta($perg_aux);
						array_push($perguntas_inseridas,$perguntas[$j]->getId());
						$qtde_perguntas--;
						$sem_pergunta++;
					}
					#echo "<br>Pergunta: ".$perguntas[0]->getTitulo();
					#echo "<hr>";
				}
			}
		}
	}
コード例 #2
0
	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)"); 
		}
	}
コード例 #3
0
			$pergunta       = addslashes(trim($_POST['pergunta_'.$i]));
			$peso           = addslashes(trim($_POST['peso_'.$i]));

			if (strlen($prova_pergunta)>0){
				$perg = NULL;
				$perg = $sessionFacade->recuperarProvaPergunta($prova_pergunta); 
				if ( is_object($perg)){
					$perg->setPeso($peso);
					$prov->addPergunta($perg);
					$qtde_pergunta_prova++;
				}
			}elseif (strlen($pergunta)>0){
				$perg = NULL;
				$perg = $sessionFacade->recuperarPergunta($pergunta); 
				if ( is_object($perg)){
					$perg_aux = new ProvaPergunta(); 
					$perg_aux->setTopico($perg->getTopico());
					$perg_aux->setTipoPergunta($perg->getTipoPergunta());
					$perg_aux->setTitulo($perg->getTitulo());
					$perg_aux->setDificuldade($perg->getDificuldade());
					$perg_aux->setFonte($perg->getFonte());
					$perg_aux->setPeso($peso);
					$perg_aux->setPerguntaOrigem($perg->getId());
					for ($j=0;$j<$perg->getQtdeResposta();$j++){
						$perg->getResposta($j)->setId(NULL);
						if (is_object($perg->getResposta($j)->getRespostaFilho())) {
							$perg->getResposta($j)->getRespostaFilho()->setId(NULL);
						}
						$perg_aux->addResposta($perg->getResposta($j));

						/*
コード例 #4
0
	function gravarProvaPergunta(ProvaPergunta $prova_pergunta){

		if (strlen($prova_pergunta->getTitulo())==0){
			throw new Exception('Informe o título da pergunta!');
		}else{
			$prova_pergunta->Xtitulo = "'".$prova_pergunta->getTitulo()."'";
		}

		if (!is_object($prova_pergunta->getTipoPergunta())){
			throw new Exception('Informe o tipo da pergunta!');
		}else{
			$prova_pergunta->Xtipo_pergunta = $prova_pergunta->getTipoPergunta()->getId();
		}

		if (!is_object($prova_pergunta->getTopico())){
			throw new Exception('Informe o tópico da pergunta!');
		}else{
			$prova_pergunta->Xtopico = $prova_pergunta->getTopico()->getId();
		}

		if (strlen($prova_pergunta->getDificuldade())==0){
			throw new Exception('Selecione a dificuldade da perguta!');
		}else{
			$prova_pergunta->Xdificuldade = $prova_pergunta->getDificuldade();
		}

		if (strlen($prova_pergunta->getFonte())==0){
			$prova_pergunta->Xfonte = " NULL ";
		}else{
			$prova_pergunta->Xfonte = "'".$prova_pergunta->getFonte()."'";
		}
		
		if (strlen($prova_pergunta->getPeso())==0){
			$prova_pergunta->Xpeso = " NULL ";
		}else{
			$prova_pergunta->setPeso( str_replace(",",".",$prova_pergunta->getPeso()) );
			$prova_pergunta->Xpeso = $prova_pergunta->getPeso();
		}

		if (strlen($prova_pergunta->getPerguntaOrigem())==0){
			throw new Exception('Qual origem desta pergunta?');
		}else{
			$prova_pergunta->Xpergunta_origem = $prova_pergunta->getPerguntaOrigem();
		}
		
		if (strlen($prova_pergunta->getProvaId())==0){
			throw new Exception('Problema ao identificar a oritem da prova. Tente novamente.');
		}else{
			$prova_pergunta->Xprova_id = $prova_pergunta->getProvaId();
		}

		$provaPerguntaDAO = new ProvaPerguntaDAO(); 
		$provaPerguntaDAO->setBancoDados($this->banco); 
		$provaPerguntaDAO->gravaDadosProvaPergunta($prova_pergunta); 

#echo "<br><br>Pergunta: (".$prova_pergunta->getPerguntaOrigem().")";
#echo "<br>Qtde Respostas: ".$prova_pergunta->getQtdeResposta();
/*
if ( $prova_pergunta->getPerguntaOrigem() == '3'){
	echo "<br><br>";
	print_r( $prova_pergunta->getResposta(0) );
	echo "<br><br>";
	print_r( $prova_pergunta->getResposta(1) );
	echo "<br><br>";
	print_r( $prova_pergunta->getResposta(2) );
	echo "<br><br>";
	print_r( $prova_pergunta->getResposta(3) );
	echo "<br><br>";
	print_r( $prova_pergunta->getResposta(4) );
	echo "<br><br>";
}
*/
		for ($i=0;$i<$prova_pergunta->getQtdeResposta();$i++){
			$prova_pergunta->getResposta($i)->setPergunta($prova_pergunta->getId());

			if (is_object($prova_pergunta->getResposta($i)->getRespostaFilho())) {
				$resposta_filho = new Resposta();
				$resposta_filho->setId($prova_pergunta->getResposta($i)->getRespostaFilho()->getId());
				$resposta_filho->setPergunta($prova_pergunta->getId());
				$resposta_filho->setRespostaTexto($prova_pergunta->getResposta($i)->getRespostaFilho()->getRespostaTexto());
				$resposta_filho->setRespostaCorreta($prova_pergunta->getResposta($i)->getRespostaFilho()->getRespostaCorreta());
				#$resposta_filho->setRespostaFilho($prova_pergunta->getResposta($i)->getRespostaFilho()->getId());
				$resposta_filho = $this->gravarProvaResposta($resposta_filho); 
				$prova_pergunta->getResposta($i)->setRespostaFilho($resposta_filho);
			}
			$this->gravarProvaResposta($prova_pergunta->getResposta($i)); 
		}
		$this->atualizarOrdemResposta($prova_pergunta);
	}