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

   
Vista:

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

Publicado por Samj (138 intervenciones) el 28/08/2014 20:21:33
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
    $test_respuesta_1 = $fila['test_respuesta_1'];
 
    $test_respuesta_2 = $fila['test_respuesta_2'];
 
    $test_respuesta_3 = $fila['test_respuesta_3'];
 
     $test_respuesta_4 = $fila['test_respuesta_4'];
 
    $test_respuesta_5 = $fila['test_respuesta_5'];
    .
    .
    .
    $test_respuesta_10 = $fila['test_respuesta_10'];
 
?>


Y estas son las respuestas dadas por el alumno:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
    $respuesta_1 = $_POST['respuesta_1'];
 
     $respuesta_2 = $_POST['respuesta_2'];
 
    $respuesta_3 = $_POST['respuesta_3'];
 
    $respuesta_4 = $_POST['respuesta_4'];
 
    $respuesta_5 = $_POST['respuesta_5'];
    .
    .
    .
    $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:

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

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

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

Publicado por Alejandro (198 intervenciones) el 28/08/2014 21:50:23
El problema es tu IF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

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

Publicado por xve (5523 intervenciones) el 28/08/2014 21:55:36
Si haces un:
1
echo $correctas;
que valor te devuelve?

Prueba a ir mostrando las dos variables... algo así:
1
echo $_POST["respuesta_".$i]."==".${"test_respuesta_".$i};
para ver si los valores son correctos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

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

Publicado por Sam (138 intervenciones) el 29/08/2014 19:09:17
Gracias xve, al final la solucion era mas sencilla aun, en la bbdd estaba metiendo las soluciones en mayusculas, y las respuestas en minusculas, asi que como es sensible a mayusuclas y minusculas por eso no contabilizada las acertadas.

Efectvamente el codigo esta bien.

Muchas gracias.

Y ya de paso como el codigo que he puesto esta bien, pues si ha alguien le puede servir, he ahi mi granito de arena.

:-))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

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

Publicado por xve (5523 intervenciones) el 29/08/2014 20:43:51
Gracias por comentarlo Sam!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar