<?php // Conectarnos con "config.php". // Añadimos también el archivo "functions.php" e iniciamos la sesion. include "conexion.php"; include_once "inc/functions.php"; sec_session_start(); // Creamos una condición "if" parar verificar que si el usuario ya ha realizado // más de 3 intentos, muestre un mensaje. Si no, muestra el form ulario. if (checkattempts($_SESSION['usuario'], $conexion)) { echo "Has realizado 3 veces el examen. Suerte en la calificación final C:", "<br>"; } else { // 1º. Preparamos la consulta SQL y guardamos el resultado en "$result". $sql = "SELECT * " . "FROM preguntas"; $result_cons = $conexion->query($sql); // 2º. Creamos el formulario con las preguntas y respuestas correspondientes. echo '<form action="puntuador.php" method="post">'; // Mostramos la información, oculta para el alumno, que después recogeremos en // "puntuador.php". // Entorno de pruebas: // echo "<input type=\"hidden\" name=\"usuario\" value=\"$usuario\">"; // 3º. Establecemos un bucle "while" para que mientras se devuelva una fila, // se muestren los datos de la misma, devueltos por la consulta. while ($fila = $result_cons->fetch_assoc()) { // Mostramos la pregunta con sus opciones. $idP = $fila['idPregunta']; $pregunta = $fila['enunciado']; $op1 = $fila['opcion1']; $op2 = $fila['opcion2']; $op3 = $fila['opcion3']; $op4 = $fila['opcion4'];
$errores = 0; $vacio = 0; // Creamos el bucle que calculará la puntuación obtenida por cada alumno. while ($fila = $result_cons->fetch_assoc()) { if ($fila['b'] == 0) { $vacio++; } elseif ($fila['b'] == $fila['a']) { $aciertos++; } else { $errores++; } // Entorno de pruebas: echo $fila['a'], " ==> ", $fila['b'], "<br>"; } // Una vez obtenido la cantidad de: aciertos, errores y preguntas vacías // realizamos el cálculo del resultado final y lo redondeamos a 2 decimales. $calificacion = round(($aciertos - $errores / 3) * 2, 2); // Se lo mostramos por pantalla al alumno. echo "<br>", "Has tenido {$aciertos} aciertos, {$vacio} preguntas sin responder y has cometido {$errores} fallos"; echo "<br>", "Tu nota final es {$calificacion}", "<br>"; // Comprobamos el número de intentos que el usuario ha realizado. if (checkattempts($usuario, $conexion)) { echo "Este era tu último intento."; } // Por último, guardamos la nota en la Base de Datos. $sql = "INSERT INTO notas " . "(usuario, vacio, aciertos, errores, nota) " . "VALUES " . "('{$usuario}','{$vacio}','{$aciertos}','{$errores}','{$calificacion}');"; $conexion->query($sql); $calificacion->free; } // Puede que las notas se sumen porque el usuario no cierra la sesion. // Hay que comprobarlo con un logout.php $conexion->close();