31/03/2009, 15:21
|
| | Fecha de Ingreso: noviembre-2008
Mensajes: 48
Antigüedad: 16 años Puntos: 0 | |
Autoevaluacion en php estoy utilizando este codigo para la autoevaluacion
html> <head> <title> Cuestionario de preguntas con tiempo </title> </head> <body>
<H2 align='center'> CUESTIONARIO </H2> <br> <hr> <br>
<?php
if ( !isset($_POST['evaluar']) ) {
$_SESSION['preguntas'] = array();
$_SESSION['respuestas'] = array();
if ($_SESSION['temporizador'] > 0) {
echo "<script language='JavaScript'> \n";
echo "temporizador = setInterval('document.forms.fo.submit();', ({$_SESSION['temporizador']} *60 *1000) ); \n";
echo "</script>";
}
$db = mysql_connect('localhost', '', '');
mysql_select_db('cuestionario', $db);
$consulta = "SELECT cod_preg, enunciado FROM preguntas WHERE nivel = {$_SESSION['nivel']}";
$preguntas = mysql_query($consulta, $db);
if ( mysql_num_rows($preguntas) ) {
echo "<form name='fo' method='post'> \n";
while ($pregunta = mysql_fetch_array($preguntas) ) {
$_SESSION['preguntas'][$pregunta['cod_preg']] = array();
$_SESSION['preguntas'][$pregunta['cod_preg']]['puntuacion'] = 0;
$_SESSION['preguntas'][$pregunta['cod_preg']]['numrespuestas'] = 0;
echo "{$pregunta['enunciado']} <br> \n";
$consulta = "SELECT cod_resp, enunciado, valor FROM respuestas WHERE cod_preg = '{$pregunta['cod_preg']}'";
$respuestas = mysql_query($consulta, $db);
if ( mysql_num_rows($respuestas) ) {
while ($respuesta = mysql_fetch_array($respuestas) ) {
echo "{$respuesta['enunciado']} <input type='radio' value='{$respuesta['cod_resp']}' name='RB{$pregunta['cod_preg']}'> <br> \n";
$_SESSION['respuestas'][$respuesta['cod_resp']] = $respuesta['valor'];
$_SESSION['preguntas'][$pregunta['cod_preg']]['numrespuestas'] ++;
}
}
}
echo "<input type='submit' name ='evaluar' value='Evaluar'> <br> \n";
echo "</form> <br> \n";
}
mysql_close();
} else {
$puntuacion = 0;
$contestadas = 0;
$acertadas = 0;
$totalPreguntas = count( $_SESSION['preguntas'] );
$db = mysql_connect('localhost', '', '');
mysql_select_db('cuestionario', $db);
foreach ($_POST as $nombre => $valor) {
if ( substr_count($nombre, "RB") > 0 ) {
$contestadas ++;
$codigo_pregunta = substr( $nombre, 2 );
echo "{$_SESSION['preguntas'][$codigo_pregunta]} <br> $codigo_pregunta <br> \n";
$preguntaMal = - (1 / $_SESSION['preguntas'][ $codigo_pregunta ]['numrespuestas'] );
if ( $_SESSION['respuestas'][ $valor ] ) {
$_SESSION['preguntas'][ $codigo_pregunta ]['puntuacion'] = 1;
$acertadas ++;
} else {
$_SESSION['preguntas'][ $codigo_pregunta ]['puntuacion'] = $preguntaMal;
}
$puntuacion += $_SESSION['preguntas'][ $codigo_pregunta ]['puntuacion'];
$respusta = "INSERT INTO historial (cod_preg, puntuacion) VALUES ('{$codigo_pregunta}', '{$_SESSION['preguntas'][ $codigo_pregunta ]['puntuacion']}' )";
$ok = mysql_query($respuesta, $db);
}
}
mysql_close($db);
echo "<B> El test ha finalizado. </B> <br> <br> \n";
echo "Los resultados son los siguientes: <br> \n";
echo " - Pregutnas contestadas: $contestadas <br> \n";
echo " - Preguntas acertadas: $acertadas <br> \n";
echo " - Preguntas falladas: " . ($contestadas - $acertadas) . " <br> \n";
echo " - Puntuación total: <B> $puntuacion </B> <br> <br> \n";
echo "Puntuación de cada pregunta (preguntas del nivel {$_SESSION['nivel']}): <br> \n";
$contador = 1;
foreach ($_SESSION['preguntas'] as $preg => $valor) {
$puntos = each($valor);
echo "- Pregunta ". $contador++ .": {$puntos[1]} <br> \n";
}
}
?>
</body> </html>
el problema q tengo es q cuando le doy al boton evaluar me genera un error y no me muestra los datos por que es espero q me pueda ayudar |