ya lo implemente así, y tengo duda en la parte de los aciertos, en los errores todo bien, lo cuenta como debe de ser. Pero a la hora de marcar solo las dos primeras casillas, el resultado me da solo 0.5, y no esta contando el valor de la segunda casilla. Lo cual el resultado debería de ser 1.
Y finalmente para comprobar las preguntas y respuestas:
Código
// si la respuesta existe y es falsa $preguntas[$id]['respuestas'][$rep] == false){ $_error=true; // hay un error break; // Dejamos de comprobar respuestas de esta pregunta } } // Si no ha habido errores en las respuestas // incrementamos puntos. Si no, incrementamos errores. if(!$_error){ $puntos += $preguntas[$id]['puntos']; } else { $errores++; } } }
Intente hacer el cambio de la siguiente forma
Código:
foreach((array)$respuesta as $rep)
{
// si la respuesta existe y es falsa
if(isset($preguntas[$id]['respuestas'][$rep]) && $preguntas[$id]['respuestas'][$rep] == false)
{
$_error=true; // hay un error
break; // Dejamos de comprobar respuestas de esta pregunta
}
else
{
if(isset($preguntas[$id]['respuestas'][$rep]) && $preguntas[$id]['respuestas'][$rep] == true)
{
$puntos += $preguntas[$id]['puntos'];
}
}
}
// Si no ha habido errores en las respuestas
// incrementamos puntos. Si no, incrementamos errores.
if($_error==true)
{
$errores++;
}
eso me cuenta ambos puntos, pero eso quiere decir que siempre me los contará, es decir al momento de elegir las 5 casillas, me incrementa estos también.
Lo único que se me ocurre sería restar el resultado de los errores para que me de la calificación correcta.
Saludos