Tema: crear examen
Ver Mensaje Individual
  #8 (permalink)  
Antiguo 18/03/2008, 09:23
Avatar de sumolari
sumolari
 
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años
Puntos: 18
Re: crear examen

Puedes crear una tabla para almacenar las respuestas de los alumnos.
Esa misma tabla te vale para los valores de la sesión.

Yo crearía al menos tres campos: sesión (ID o algo para identificar al alumno), ID de las preguntas (cada ID separada de la siguiente por un símbolo poco frecuente, como el asterisco (*)), respuesta elegida para cada pregunta (como antes separada por asterisco).

De forma que si yo respondo a todas las preguntas la respuesta A quedaría así:

Campo preguntas:
1*6*9*12*8*34*29*14*46*4*16*19*30*50*7

Campo de respuestas:
A*A*A*A*A*A*A*A*A*A*A*A*A*A*A

Usando la función explode() de php puedes separar una cadena en partes usando un símbolo como separador. El símbolo en este caso sería asterisco (*). De forma que te quedarían 15 trozos que contienen las ID de las preguntas realizadas y 15 trozos que contienen las respuestas correspondientes.
Además explode() permite crear un array con cada valor, de forma que podría quedarte:
Código PHP:
$preguntas[1] = 1;
$preguntas[2] = 6;
// ETC

$respuestas[1] = A;
$respuestas[2] = A;
//ETC 
De esta forma es muy sencillo relacionar los valores de las preguntas con las respuestas.

Puedes hacer el insert a la base de datos al principio, almacenando como valor de las respuestas sin responder 0, de forma que el script al ver 0 sepa que no se ha contestado a la pregunta,

Además con ajax puedes hacer que cada X tiempo se almacenen las respuestas en la base de datos (además de ponerle un botón de "Finalizar").

Ahora, yo tengo una duda, ¿cómo has ordenado las respuestas? Porque si el alumno ve que todas las correctas están en la 3ª posición será fácil aprobar el examen.
Debes hacer que las respuestas aparezcan cada vez en un orden distinto, de forma que si ahora en la lista aparece A, B, C, D y E; luego aparezca B, E, D, C y A.