Ir para conteúdo

POWERED BY:

Arquivado

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

Gelson Design

[Resolvido] Comparar dois campos para dar nota

Recommended Posts

$certas = 0;

$sql_simu = mysql_query("SELECT * FROM simulado ORDER BY id LIMIT 1");
while ($rs = mysql_fetch_array($sql_simu)){

$id = $rs['id'];

}



$sqlPerg = mysql_query("SELECT * FROM perguntas WHERE id_simulado = '$id' ORDER BY `perguntas`.`id` DESC");
	 while ($rp=mysql_fetch_array($sqlPerg)) {

		$correta = $rp['correta'];
		echo $correta;	
	}		
	echo "<br>";	

	$sql_resp = mysql_query("SELECT * FROM respaluno WHERE id_aluno = '".$_SESSION[alunoId]."' AND id_simulado = '$id'");
while ($row_resp = mysql_fetch_array($sql_resp)){

	$resposta = $row_resp['resposta'];
	echo $resposta;
}

if ($row_resp['resposta'] == $rp['correta']){ 
		echo "<br><font color=red>$resposta</font>";
		$certas +=1;
}	

	 echo "<br>$certas";

 

O resultado é "1", pq ele esta comparando 1 tipo de resposta so, ou seja, se aluno marcou resp2 ele percorre todas as corretas com resp2 e da a nota e esta errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha se resolve, senão tenta explicar melhor o que você ker

 

//estranha essa sua pesquisa para achar o id, mas vamos lá
$sql_simu = mysql_query("SELECT * FROM simulado ORDER BY id LIMIT 1");
$rs = mysql_fetch_array($sql_simu);
$id = $rs['id'];//pega o id do simulado
//verifica as respostas certas
$sql = mysql_query("select count(*) as certas from perguntas p inner join respaluno r 
       on p.correta = r.resposta and p.id_simulado = {$id} and r.id_aluno = {$_SESSION[alunoId]} 
       group by p.id_simulado");
$linha=mysql_fetch_array($sql)
echo $linha['certas'];//resposta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Victor é assim, possuo 3 tabelas

 

Simulado - id_simulado - simulado

 

perguntas - id_pergunta - id_simulado - pergunta - resp1 - resp2 - resp3 - resp4 - correta

 

respaluno - id - id_aluno - id_pergunta - resposta

 

ou seja depois que o aluno resposde as 20 perguntas sera acrescentado na tabela respaluno o id_pergunta de todas as 20 respondidas e a resposta de cada uma das 20 perguntas.

 

entao vai estar assim

 

pergunta = 1 - resposta = resp2

pergunta = 2 - resposta = resp1 - Assim por diante ate a ultima.

 

Entao era para ser uma tarefa facil simplesmente comparar if ($resposta for igual a $correta){ acrescente mais 1 a nota}

 

mas ela nao esta comparando todas as 20 respostas

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim

$id_simulado = "";//atribua um id de um simulado a essa variável para executar a query
$id_aluno = $_SESSION[alunoId];
$sql = mysql_query("select count(*) as certas from perguntas p inner join respaluno r on (p.id_pergunta = r.id_pergunta) 
where p.pergunta = r.resposta and p.id_simulado = {$id_simulado} and r.id_aluno = {$id_aluno}");
$linha=mysql_fetch_array($sql)
echo $linha['certas'];//resposta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei o problema deixei assim

 

$id_aluno = $_SESSION[alunoId];

 

$sql = mysql_query("select count(*) as correta from perguntas p inner join respaluno r on (p.id = r.id_pergunta)

where p.correta = r.resposta and p.id_simulado = {$id} and r.id_aluno = {$id_aluno}");

$linha = mysql_fetch_array($sql);

echo $linha['correta'];//resposta

 

so que dai nao consigo mostrar qual o aluno acertou e qual errou ne?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim?? pelo que você pediu você keria saber quantos acertos do aluno do id que está na variável de sessão $_SESSION[alunoId] e não de todos os alunos

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta isso

$sql = mysql_query("select p.pergunta, p.resposta as resposta_certa, r.resposta as resposta_aluno from 
perguntas p inner join respaluno r on (p.id_pergunta = r.id_pergunta) 
where p.id_simulado = {$id} and r.id_aluno = {$id_aluno}");
cont_certas  = 0;
cont_erradas = 0;
while( $linha=mysql_fetch_array($sql)){
	echo "Pergunta: {$linha['pergunta']}<br>";
	if($linha['resposta_certa'] == $linha['resposta_aluno']){
		echo "Você acertou! Resposta: {$linha['resposta_aluno']}";
		$cont_certas++;
	}else{
		echo "Errou! <br>";
		echo "Resposta certa: {$linha['resposta_certa']}<br>";
		echo "Sua resposta: {$linha['resposta_aluno']}<br>";
		$cont_erradas++;
	}
}

echo "Total certas: {cont_certas}<br>";
echo "Total erradas: {cont_erradas}";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou testar

 

Deu certo brother, so tenho uma pergunta mais se existirem dois simulado ele vai separar as notas de cada 1?

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.