cassio88
(usa Ubuntu)
Enviado em 02/09/2014 - 05:48h
Sei que o que você pediu não é bem isso, mas como lecionei durante 15 anos, vou postar o que eu usava PARA INCLUIR UMA PROVA NO BANCO DE DADOS. Se interessar, depois eu coloco os códigos de corrigir uma prova e fazer o relatório de notas da classe. De toda maneira, você aprende mais quebrando a cabeça e tentando achar sua própria solução do que pegando coisas prontas na web.
prova_inclui.php : selecionava a classe
prova_inclui0.php: se era P1, P2, exame final...
prova_inclui1.php: conferia senha do aluno (para evitar um fazer no lugar do outro)
prova_inclui2.php: selecionava aleatoriamente 10 questões e montava a prova. O código segue abaixo. Note que o código é do modo antigo, como se seguisse uma receita de bolo, sem uso de orientação a objeto
<?php
session_start();
include("biblioteca.php");
// para evitar o cara entrar direto
if ($_SESSION[logado]!=1) {
echo 'Acesso negado';
die;
}
// a função check mandatory só funciona se houver um só input hidden no início
// caso contrário a alternativa e sempre aparecerá em branco
// se o cara já fez, nao vai conseguir puxar de novo!
$query = "SELECT * FROM tbl_nota_teste WHERE aluno = $aluno AND p$prova is not null";
// $query = "SELECT * FROM tbl_nota_teste WHERE aluno = $aluno";
$guest = database($query);
if (mysql_num_rows($guest) > 0) {
echo 'Você já fez esta prova.';
die;
}
// sortear as questoes aleatoriamente
$query = "SELECT numero_questao FROM tbl_gabarito WHERE prova <= $prova";
// $query = "SELECT numero_questao FROM tbl_gabarito WHERE prova = 4";
// setado para exame, até prova 3 ************************************
if ($prova > 97)
$query = "SELECT numero_questao FROM tbl_gabarito WHERE prova < 4";
$result = database($query);
// upperbound = número de questoes; lowerbound = 1 pois começa na primeira questao
$upperbound = mysql_num_rows($result);
// checa se o numero já nao esta incluido na lista
$contador=1;
$lista[1] = 0;
while ($contador < 11) {
$numero_sorteado = rand (1, $upperbound);
$achei = false;
foreach ($lista as $value) {
if ($value == $numero_sorteado) {
$achei = true;
}
}
if ($achei == false) {
$lista[$contador] = $numero_sorteado;
$contador++;
}
}
// $lista() é um array que contem os numeros das 10 questoes
$strSQL = "SELECT numero_questao, texto, alternativa_a, alternativa_b, alternativa_c, alternativa_d, alternativa_e ";
$strSQL = $strSQL." FROM tbl_gabarito WHERE numero_questao = $lista[1] OR numero_questao = $lista[2]";
$strSQL = $strSQL." OR numero_questao = $lista[3] OR numero_questao = $lista[4]";
$strSQL = $strSQL." OR numero_questao = $lista[5] OR numero_questao = $lista[6]";
$strSQL = $strSQL." OR numero_questao = $lista[7] OR numero_questao = $lista[8]";
$strSQL = $strSQL." OR numero_questao = $lista[9] OR numero_questao = $lista[10]";
$guest = database($strSQL);
?>
<HTML>
<head>
<meta http-equiv="Pragma" content="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="Thu, 01 Dec 1994 16:00:00 GMT">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<script language = "JavaScript">
function checkMandatory()
{
// check the radio buttons
var error_string = "";
var i = 1;
var loop = 3;
while (loop < window.document.the_form.elements.length)
{
var rad_select = "no";
while (i < 6)
{
if (window.document.the_form.elements[loop].checked == true)
{
rad_select = "yes";
}
i = i + 1;
loop = loop + 1;
}
loop = loop + 2;
i = 1;
if (rad_select == "no")
{
error_string += parseInt(loop/7);
error_string += "\n";
}
}
if (error_string == "")
{
return true;
} else {
error_string = "As seguintes questões ficaram em branco:\n" + error_string;
alert(error_string);
return false;
}
}
</script>
</head>
<BODY>
<FORM name = "the_form" method="POST" action="prova_inclui3.php" onSubmit="var the_result = checkMandatory(); return the_result;">
<input type="hidden" name="aluno" value="<?php print $aluno;?>">
<table>
<?php
$contador = 1;
while ($result = mysql_fetch_array($guest, MYSQL_ASSOC)) {
?>
<tr>
<input type="hidden" name ="<?php print "M$contador";?>" value="<?php print $contador;?>">
<td><?php print $contador;?>)
<input type="hidden" name ="<?php print "Q$contador";?>"
value="<?php echo $result[numero_questao];?>"></td>
<td>
<?php
echo $result[texto];
// echo '('.$result[numero_questao].')';
?></td></tr>
<tr><td><input type="radio" name = "<?php print "R$contador";?>" value="a"></td>
<td><?php echo $result[alternativa_a];?></td></tr>
<tr><td><input type="radio" name = "<?php print "R$contador";?>" value="b"></td>
<td><?php echo $result[alternativa_b];?></td></tr>
<tr><td><input type="radio" name = "<?php print "R$contador";?>" value="c"></td>
<td><?php echo $result[alternativa_c];?></td></tr>
<tr><td><input type="radio" name = "<?php print "R$contador";?>" value="d"></td>
<td><?php echo $result[alternativa_d];?></td></tr>
<tr><td><input type="radio" name = "<?php print "R$contador";?>" value="e"></td>
<td><?php echo $result[alternativa_e];?></td>
</tr>
<tr><td><hr></td><td><hr></td></tr>
<?php
$contador++;
}
?>
</table>
<p><input type="hidden" name="prova" value="<?php print $prova;?>">
<p><input type="submit" value="Enviar" name="Enviar">
</FORM>
</BODY>
</HTML>