Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luan Ramos

Erro na consulta

Recommended Posts

Pessoal, Estou fazendo um sistema de provas onLine.

Estou com um problema quando realizo uma consulta no banco pra mostrar as provas que o aluno ainda não fez.

 

a consulta é realizada dessa forma:

 

"SELECT * FROM sis_prova, sis_aluno 
							WHERE sis_prova.curso=".$colname_prova.
							" AND sis_aluno.cpf= ".$cpf.
							" AND NOT EXISTS (SELECT null 
								 FROM sis_prova sis_prova2, sis_resp_prova, sis_aluno sis_aluno2 
								 WHERE sis_aluno2.cpf = sis_aluno.cpf 
								 AND sis_resp_prova.matricula = sis_aluno2.cpf 
								 AND sis_prova2.cod_prova = sis_resp_prova.cod_prova1 
                                 AND sis_prova2.cod_prova = sis_prova.cod_prova)");

 

A consulta é assim:

 

Selecione todas as provas que o aluno cujo CPF= $cpf(digitado pelo usuario) da turma=$colname_prova(Digitado pelo aluno) ainda não fez...

 

porém me retorna o erro:

 

Coluna 'SGA0112' desconhecida em 'where clause'.

 

Onde 'SGA0112' é a turma que o aluno digitou.

 

Abraços e agradeço desde já.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A query roda fora da aplicação ?

 

Simplificando isto que fiz

 

Provas que o aluno X fez

 

SELECT sis_resp_prova.cod_prova1
FROM sis_resp_prova, sis_aluno
WHERE sis_aluno.cpf = '12345678901' 
AND sis_resp_prova.matricula = sis_aluno2.cpf 

 

Nomeando estas provas ...

 

 

SELECT *
FROM sis_prova
where cod_prova in (SELECT sis_resp_prova.cod_prova1
                    FROM sis_resp_prova, sis_aluno
                    WHERE sis_aluno.cpf = '12345678901' 
                    AND sis_resp_prova.matricula = sis_aluno2.cpf) 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um aluno pode estar em mais de uma turma ?

sis_resp_prova tem campo "turma" ?

Seria (em tese) só incluir o campo na query.

 

 

SELECT * 
FROM sis_prova 
where cod_prova in (SELECT sis_resp_prova.cod_prova1 
                    FROM sis_resp_prova, sis_aluno 
                    WHERE sis_aluno.cpf = '12345678901' 
                    and sis_aluno.turma = '123'                    
                    AND sis_resp_prova.matricula = sis_aluno2.cpf
                    AND sis_resp_prova.turma = sis_aluno2.turma) 

 

 




			
		

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, consegui resolver assim:

 

mysql_select_db($database_DB_Connect, $DB_Connect);
$query_prova = sprintf("SELECT * FROM sis_prova, sis_aluno 
							WHERE sis_prova.curso='".$colname_prova."' AND sis_aluno.cpf='".$cpf."' AND NOT EXISTS (SELECT null 
								 FROM sis_prova sis_prova2, sis_resp_prova, sis_aluno sis_aluno2 
								 WHERE sis_aluno2.cpf = sis_aluno.cpf 
								 AND sis_resp_prova.matricula = sis_aluno2.cpf 
								 AND sis_prova2.curso = sis_prova.curso
								 AND sis_prova2.cod_prova = sis_resp_prova.cod_prova1 
                                 AND sis_prova2.cod_prova = sis_prova.cod_prova)");
$prova = mysql_query($query_prova, $DB_Connect) or die(mysql_error());
$row_prova = mysql_fetch_assoc($prova);
$totalRows_prova = mysql_num_rows($prova);

 

 

muito obrigado pela ajuda de todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.