Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite Galera,
Estou desenvolvendo um script de provas online, tem perguntas cadastras no db numa tabela questoes onde tem id,pergunta,resposta1,resposta2,resposta3,resposta4, resposta5 e respostacorreta.
Estou pegando as questões aleatoriamente do banco, até ai tudo bem,mas estou com dúvidas em relação a validação das respostas corretas. Alguém pode me dar uma luz de como posso validar e obter um resultado, por exemplo USUARIO acertou 50% da questões.
Aqui é o cód que recupera os registros.
<?php
//Conexo com o banco:
mysql_connect("ip","USUARIOt","SENHA");
mysql_select_db("xxx");
// Informaes da query. No caso, "SELECT * FROM questoes WHERE EXIBIR=1 ORDER BY RAND()"
$campos_query = "*";
$final_query = "FROM questoes WHERE exibir=1";
// Declarao da pagina inicial
if($pagina == "") {
$pagina = "1";
}
// Maximo de registros por pagina
$maximo = 5;
// Calculando o registro inicial
$inicio = $pagina - 1;
$inicio = $maximo * $inicio;
// Conta os resultados no total da minha query
$strCount = "SELECT COUNT(*) AS 'num_registros' $final_query";
$query = mysql_query($strCount);
$row = mysql_fetch_array($query);
$total = $row["num_registros"];
if($total <= 0) {
echo "<center>Nenhum registro encontrado.</center>"; if(!isset($_GET["seed"])) {
$seed = rand(); // Caso ainda no exista uma semente, cria a semente via PHP.
} else {
$seed = addslashes($_GET["seed"]); // Caso j exista uma semente, utiliza a que foi passada na url. (o addslashes por questo de segurana)
}
$strQuery = "SELECT $campos_query $final_query ORDER BY RAND($seed) LIMIT $inicio,$maximo";
$query = mysql_query($strQuery);
while($row = mysql_fetch_array($query)) {
$id = $row['id'];
$pergunta = $row['pergunta'];
$resposta1 = $row['1'];
$resposta2 = $row['2'];
$resposta3 = $row['3'];
$resposta4 = $row['4'];
$respostacorreta = $row['respostacorreta'];
echo "<h2 class=\"h2\">Pergunta: ".$row["pergunta"]."</h2><BR>";
echo "<br />";
echo "<form method='POST' action='confereteste.php?id=$id'>";
echo "<p class=\"radio\"> a)</p><input name=\"resposta\" id=\"resposta\" class=\"radio\" type=\"radio\" value=\"1\" /><p> ".$row["resposta1"]." </p><br />";
echo "<p class=\"radio\"> b)</p><input name=\"resposta\" id=\"resposta\" class=\"radio\" type=\"radio\" value=\"2\" /><p> ".$row["resposta2"]." </p><br />";
echo "<p class=\"radio\"> c)</p><input name=\"resposta\" id=\"resposta\" class=\"radio\" type=\"radio\" value=\"3\" /><p> ".$row["resposta3"]." </p><br />";
echo "<p class=\"radio\"> d)</p><input name=\"resposta\" id=\"resposta\" class=\"radio\" type=\"radio\" value=\"4\" /><p> ".$row["resposta4"]." </p><br />";
echo "<input type='submit' value='finalizar'>";
}
// Calculando pagina anterior
$menos = $pagina - 1;
// Calculando pagina posterior
$mais = $pagina + 1;
$pgs = ceil($total / $maximo);
if($pgs > 1 ) {
// Mostragem de pagina
if($menos>0) {
echo "<a href=\"?pagina=$menos&seed=$seed\" class='texto_paginacao'>anterior</a> ";
}
// Listando as paginas
for($i=1;$i <= $pgs;$i++) {
if($i != $pagina) {
echo " <a href=\"?pagina=".($i)."&seed=$seed\" class='texto_paginacao'>$i</a>";
} else {
echo " <strong class='texto_paginacao_pgatual'>".$i."</strong>";
}
}
if($mais <= $pgs) {
echo " <a href=\"?pagina=$mais&seed=$seed\" class='texto_paginacao'>prxima</a>";
}
}
}
?>
E aqui é a página que estou apanhando para validar e dar o resultado, não sei por onde começar. Mas o if, também não funfa....
>
<?
//PEGA A RESPOSTA DO FORMULÁRIO
$resposta = $_POST['resposta'];
//PEGA O ID INFORMADO NO ENDEREÇO
$id = $_GET['id'];
//FAZ A CONEXÃO COM O BANCO DE DADOS
//Conexo com o banco:
mysql_connect("ip","usuario","senha");
mysql_select_db("xxxxx");
//FAZ A BUSCA ONDE O ID VAI SER IGUAL O DA PERGUNTA
$sql = "SELECT * FROM questoes where id = $id";
$exe = mysql_query($sql);
//INICIA O WHILE
while ($row = mysql_fetch_array($exe)){
$id = $row['id'];
$pergunta = $row['pergunta'];
$resposta1 = $row['1'];
$resposta2 = $row['2'];
$resposta3 = $row['3'];
$resposta4 = $row['4'];
$respostacorreta = $row['respostacorreta'];
$respondeu = $row[$resposta];
$repostacerta = $row[$respostacorreta];
/*SE A RESPOSTA INFORMADA PELO FORMULÁRIO BATER COM A NO BANCO DE DADOS
MOSTRAR MENSAGEM DE QUE ESTÁ CORRETO*/
if ($resposta == $respostacorreta){
echo "<p>resposta correta";
}
//SENÃO MOSTRAR QUE ESTÁ INCORRETO!
else
{
echo "resposta errada"
}
}
?>Carregando comentários...