Exemplo n.º 1
0
<?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'];
Exemplo n.º 2
0
    $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();