Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2014, 11:45
mensajeescrito
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
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