Foros del Web » Programando para Internet » PHP »

Codigo para ver si has aprobado o no un examen tipo test

Estas en el tema de Codigo para ver si has aprobado o no un examen tipo test en el foro de PHP en Foros del Web. A ver si alguien me puede echar una manita, que no encuentro la razon por la que esto no funciona: veran tengo un codigo que ...
  #1 (permalink)  
Antiguo 28/08/2014, 11:45
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Codigo para ver si has aprobado o no un examen tipo test

A ver si alguien me puede echar una manita, que no encuentro la razon por la que esto no funciona:

veran tengo un codigo que segun las respuestas acertadas, si es mas de un 5 te dice que has aprobado y si es menos de un 5 que has suspendido.

El problema es que no funciona siempre me da como que ha suspendido y no se por que:


Estas son las soluciones correctas al test extraidas de la bbdd:

Código PHP:
Ver original
  1. $test_respuesta_1 = $fila['test_respuesta_1'];
  2.                        
  3. $test_respuesta_2 = $fila['test_respuesta_2'];  
  4.                        
  5. $test_respuesta_3 = $fila['test_respuesta_3'];  
  6.                        
  7.  $test_respuesta_4 = $fila['test_respuesta_4'];    
  8.                        
  9. $test_respuesta_5 = $fila['test_respuesta_5'];  
  10. .
  11. .
  12. .
  13. $test_respuesta_10 = $fila['test_respuesta_10'];

Y estas son las respuestas dadas por el alumno:

Código PHP:
Ver original
  1. $respuesta_1 = $_POST['respuesta_1'];
  2.                    
  3.  $respuesta_2 = $_POST['respuesta_2'];
  4.                    
  5. $respuesta_3 = $_POST['respuesta_3'];
  6.                    
  7. $respuesta_4 = $_POST['respuesta_4'];
  8.                    
  9. $respuesta_5 = $_POST['respuesta_5'];
  10. .
  11. .
  12. .
  13. $respuesta_10 = $_POST['respuesta_10'];


Y este es el codigo que dice si has aprobado o suspenso, que es donde debe estar el problema y no se donde:

Código PHP:
Ver original
  1. $correctas=0;
  2.                        
  3.                         for($i=1;$i<11;$i++) {
  4.  
  5.                        
  6.                         if($_POST["respuesta_".$i]==${"test_respuesta_".$i})
  7.                    
  8.                             $correctas++;
  9.  
  10.                         }
  11.  
  12.  
  13.                         if($correctas>=5) {
  14.                        
  15.                             echo "has aprobado";
  16.  
  17.                             } else {
  18.  
  19.                            echo "has suspendido";
  20.  
  21.                            }


Gracias de antemano.

Última edición por mensajeescrito; 28/08/2014 a las 12:07
  #2 (permalink)  
Antiguo 28/08/2014, 12:16
Avatar de toledo_nocturno  
Fecha de Ingreso: agosto-2011
Ubicación: Under the northen star
Mensajes: 86
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Codigo para ver si has aprobado o no un examen tipo test

Muy buenas,

Pues no se, me he copiado tu código y me funciona, rellenándole los huecos.

Mira a ver si tienes alguna comprobación extra, o si es al definir los resultados de los tests en el array.

Si no, no veo el error.

Un saludo!
__________________
diseño web | Clan Rol
  #3 (permalink)  
Antiguo 28/08/2014, 12:21
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: Codigo para ver si has aprobado o no un examen tipo test

Si es que solo es esto, bueno hay mas relleno en los echo , tanto de si apruebas como en el echo de si suspendes pero son divs con texto solamente

Yo creo que es que no detecta la variable $correctas.

Lo digo porque si fuerzo donde pone:

Código PHP:
Ver original
  1. $correctas=0;

y le pongo un 5, osea:

Código PHP:
Ver original
  1. $correctas=5;

Entonces si me sale aprobado.
  #4 (permalink)  
Antiguo 28/08/2014, 13:16
Avatar de toledo_nocturno  
Fecha de Ingreso: agosto-2011
Ubicación: Under the northen star
Mensajes: 86
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Codigo para ver si has aprobado o no un examen tipo test

a mi me salía bien antes forzando el cero, y he ido pintando a cada vuelta del for, o sea que debería estar.
__________________
diseño web | Clan Rol
  #5 (permalink)  
Antiguo 28/08/2014, 13:31
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: Codigo para ver si has aprobado o no un examen tipo test

A ver esto es de locos:

Yo compruebo que llegan los valores de las respuestas y las soluciones extraidas tanto del examen tipo test como las soluciones de la bbdd.

Y lo hago con un echo, y efectivamente me muestran los diez valores de cada una tanto en las soluciones correctas como las respuestas del alumno.

COn lo cual eso no es problema , llegan los datos.

Pero imaginate que el alumno acierta 4 respuestas correctas.

En teoria deberia salira un 4 .

Pues no me dice que ha suspendido con un cero.

A ver, yo lo prometo no se donde esta el error.


Solo se que si le doy un valor numerico a la variable $correctas, entonces me lo detecta y me dice pues a sacado un 4 o un 5 o el valor que le haya metido en ese momento.

Por eso digo que es como si no detectara o no se guardara el valor de las respuestas acertadas en la variable $correctas y no se por que.

ayudita!!!

Etiquetas: examen, test, tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:40.