예제 #1
0
	public function excluirProvaDAO(Prova $prova){

		$banco = $this->getBancoDados(); 

		$sql = "SELECT count(*) AS qtde
				FROM tbl_prova 
				JOIN tbl_disciplina USING(disciplina)
				WHERE tbl_disciplina.instituicao = ".$this->_login_instituicao."
				AND   tbl_prova.prova            = ".$prova->getId(); 
		$retorno = $banco->executaSQL($sql);
		if($retorno != NULL) {
			$linha = mysql_fetch_array($retorno);
			if ($linha['qtde'] == 0){
				throw new Exception("Prova não encontrada!"); 
			}
		} else {
			throw new Exception("Erro ao excluir a prova. ($sql)"); 
		}

		$query = " DELETE FROM tbl_prova_aluno_email
					WHERE prova = ".$prova->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) "); 
		}

		$query = " DELETE FROM tbl_prova_aluno_resposta
					WHERE prova_aluno_pergunta IN (
							SELECT prova_aluno_pergunta
							FROM tbl_prova_aluno_pergunta
							WHERE tbl_prova_aluno_pergunta.prova = ".$prova->getId()."
					)";
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) "); 
		}

		$query = " DELETE FROM tbl_prova_aluno_pergunta
					WHERE prova = ".$prova->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) "); 
		}

		$query = " DELETE FROM tbl_prova_aluno
					WHERE prova = ".$prova->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) ".$banco->mysql_error()); 
		}

		$query = " DELETE FROM tbl_prova_resposta
					WHERE prova_pergunta IN (
							SELECT prova_pergunta
							FROM tbl_prova_pergunta
							WHERE prova = ".$prova->getId()."
					)";
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) "); 
		}

		$query = " DELETE FROM tbl_prova_pergunta_imagem 
					WHERE prova_pergunta IN (
						SELECT prova_pergunta 
						FROM tbl_prova_pergunta 
						WHERE prova = ".$prova->getId()."
					)";
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) "); 
		}
		
		$query = " DELETE FROM tbl_prova_pergunta
					WHERE prova = ".$prova->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) ".$banco->mysql_error()); 
		}

		$query = " DELETE FROM tbl_prova_topico
					WHERE prova = ".$prova->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) "); 
		}

		$query = " DELETE FROM tbl_prova
					WHERE prova = ".$prova->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) 2".$banco->mysql_error()); 
		}
	}