Foros del Web » Programando para Internet » PHP »

Meter en array valores de variables acertados de un examen

Estas en el tema de Meter en array valores de variables acertados de un examen en el foro de PHP en Foros del Web. Hola buenas a ver si me pueden ayudar con una duda que tengo: Estoy haciendo un formulario que le estoy dando la forma de test-examen, ...
  #1 (permalink)  
Antiguo 26/07/2014, 11:54
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 10 meses
Puntos: 5
Meter en array valores de variables acertados de un examen

Hola buenas a ver si me pueden ayudar con una duda que tengo:

Estoy haciendo un formulario que le estoy dando la forma de test-examen, es decir 10 preguntas a las cuales mediante radio button, tengo que decir si es verdadero o falso.

el tema es que si el usuario acierta, este valor se tiene que guardar en una variable.

Hasta aqui se hacerlo , pero como hago que el valor de la opcion acertada, se meta en un array para contabilizar asi las respuestas correctas.?

es decir si el usuario marca 6 respuestas correctas deben entrar en un array el cual le diria si este array contiene valores mayor que 5 entonces esta aprobado.


Como hago para que estos valores acertados entren en un array?


Gracias de antemano.
  #2 (permalink)  
Antiguo 26/07/2014, 12:12
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Meter en array valores de variables acertados de un examen

Pues, si trabajas con un formulario, supongo que envías los datos hacia otro archivo o al mismo para poder procesarlos, entonces, solo sería cuestión de que evalúes cada respuesta y por cada acierto, contabilizas uno en un acumulador, el cual determinará si el usuario pasó o no el test. Al mismo tiempo que corroboras que la respuesta sea correcta, la insertas en la variable que mencionas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 26/07/2014, 14:53
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 10 meses
Puntos: 5
Respuesta: Meter en array valores de variables acertados de un examen

Hola alexis88.

Este es el tema que se como hacer si una respuesta es correcta o no, pero no se meterla en un acumulador y me diga si esta aprobado o no.

Mira te digo lo que tengo:

Código PHP:
Ver original
  1. if ($test_respuesta_1 == $respuesta_1) {
  2.    
  3.         echo 'Correcta';   
  4.        
  5.         } else {
  6.    
  7.         echo 'Incorrecta'; 
  8.        
  9.         }
  10.  
  11.  
  12.  
  13.  
  14.     if ($test_respuesta_2 == $respuesta_2) {
  15.    
  16.         echo 'Correcta';   
  17.        
  18.         } else {
  19.    
  20.         echo 'Incorrecta'; 
  21.        
  22.         }
  23.  
  24. .
  25. .
  26. ..
  27. ..
  28. .
  29.     if ($test_respuesta_10 == $respuesta_10) {
  30.    
  31.         echo 'Correcta';   
  32.        
  33.         } else {
  34.    
  35.         echo 'Incorrecta'; 
  36.        
  37.         }


Bien los "$respuesta_n", son los distintos valores de los radio-buton, a partir de aqui no se como meter los valores de las diez respuestas en un acumulador y en el caso de ser dicho acululador mayor que 5 ,seria aprobado de lo contrario suspenso. pero no se como hacerlo.

help:
  #4 (permalink)  
Antiguo 26/07/2014, 15:12
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Meter en array valores de variables acertados de un examen

A lo que me refería es a algo así:

Código PHP:
Ver original
  1. $bien = 0;
  2.  
  3. if ($respuesta_test1 == $respuesta1) $bien++;

Y ya luego de evaluar a todas las preguntas, sería cuestión de que evalúes el valor final de $bien.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 26/07/2014 a las 16:15 Razón: Variable de más
  #5 (permalink)  
Antiguo 26/07/2014, 16:19
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Meter en array valores de variables acertados de un examen

Código PHP:
Ver original
  1. $bien = 0;
  2. if($respuesta_test1 == $respuesta1)  {
  3. $bien++; } else {
  4. $mal++; } // así con todas las preguntas
  5.  
  6. //comprobamos que el usuario ha aprobado.
  7. if($bien >= 5){
  8. echo "Has aprobado con un " . $bien; } else {
  9. echo "Has suspendido con un " . $bien; }

o si lo prefieres guardas si ha aprobado en un boleano por si lo necesitas más tarde.

Código PHP:
Ver original
  1. if($bien >= 5) {
  2. $aprobado = true; } else {
  3. $aprobado = false; }
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #6 (permalink)  
Antiguo 27/07/2014, 02:04
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Meter en array valores de variables acertados de un examen

Te dejo la solución que le dí a otro usuario de este mismo foro a una pregunta similar a la tuya.
Pregunta - Solución.

Una vez que sepas como obtener los datos ya tendrías que ajustar a lo que quieras mostrar.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #7 (permalink)  
Antiguo 27/07/2014, 02:57
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 10 meses
Puntos: 5
Respuesta: Meter en array valores de variables acertados de un examen

Muchas gracias bookmaster, tendre el ejemplo que has puesto en cuenta para otra vez por que me ha parecido muy interesante.


alexis88 y rodrypaladin, vuestra solucion es la que mejor se adecua, la he implementado ya pero no funciona y no entiendo por que por que esta bien clara.


he puesto lo siguiente:

Código PHP:
Ver original
  1. $bien = 0;
  2.  
  3.  
  4.  
  5.     if($respuesta_test_1 == $respuesta_1)  {
  6.        
  7.         $bien++;
  8.    
  9.     } else {
  10.        
  11.          $mal++;
  12.    
  13.     }
  14.  
  15.  
  16.  
  17.  
  18.     if($respuesta_test_2 == $respuesta_2)  {
  19.        
  20.          $bien++;
  21.    
  22.     } else {
  23.        
  24.          $mal++;
  25.    
  26.     }
  27.  
  28. .
  29. .
  30. .
  31. .
  32.     if($respuesta_test_10 == $respuesta_10)  {
  33.        
  34.          $bien++;
  35.    
  36.     } else {
  37.        
  38.          $mal++;
  39.    
  40.     }
  41.  
  42.  
  43.     if($bien >= 5){
  44.        
  45.         echo "Has aprobado con un " . $bien;
  46.    
  47.     } else {
  48.        
  49.         echo "Has suspendido con un " . $bien;
  50.    
  51.     }



Mira que esta claro el ejemplo, pues no consigo ver donde falla me sale el siguiente mensaje:

"Has suspendido con un 0 "


por que no suma y muestra el valor de $bien ?
  #8 (permalink)  
Antiguo 27/07/2014, 03:54
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Meter en array valores de variables acertados de un examen

He corregido el fallo de la prueba funcionando, que no se porque a dejado de funcionar si no se a tocado el código desde hace 2 años y no se a cambiado nada.

Con respecto a tu situación, asegúrate que recibes y asignas bien los valores de $respuesta_test_X y $respuesta_X ya que si no están bien asignados siempre te saldrá como $mal.
Prueba a realizar un var_dump($respuesta_test_X) cambiando la X por el numero y ver si te llega algún resultado, y lo mismo para $respuesta_X;
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #9 (permalink)  
Antiguo 27/07/2014, 06:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Meter en array valores de variables acertados de un examen

Lo más probable es que no estés recepcionando correctamente a los valores que corresponden a las respuestas dadas por el usuario. Revisa bien esa parte porque parece ser que ahí está el fallo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 27/07/2014, 08:58
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Meter en array valores de variables acertados de un examen

Empecemos de 0 para ver que ha salido mal.
Supongamos que esta es la primera pregunta del examen.

Código HTML:
Ver original
  1. ¿Cúanto es 10 - 8?
  2. <INPUT type=radio name="pregunta1" value="5">5
  3. <INPUT type=radio name="pregunta1" value="6">6
  4. <INPUT type=radio name="pregunta1" value="7">7
  5. <INPUT type=radio name="pregunta1" value="8">8
  6. <INPUT type=radio name="pregunta1" value="9">9
  7. <INPUT type=radio name="pregunta1" value="10">10

Ahora vamos a ver si el usuario ha acertado la pregunta y lo contabilizamos

Código PHP:
Ver original
  1. $bien = 0;
  2. $mal = 0;
  3.  
  4. if($_POST["pregunta1" == "2"]) {
  5.     $bien++;
  6. } else {
  7.     $mal++;
  8. }

Primero declaramos las variables $bien y $mal donde guardaremos las preguntas acertadas y falladas. Después hemos realizado una condición: si el usuario responde correctamente a la pregunta suma 1 a la variable $bien, si falla suma 1 a la variable $mal.

Supongamos que ya tenemos las 10 preguntas construidas con el condicional, ahora vamos a comprobar si el usuario ha aprobado o ha suspendido.

Código PHP:
Ver original
  1. if($bien >= 5) {
  2.     $aprobado = true;
  3.     echo "<b>El usuario ha aprobado:<b/> Nota: " . $bien;
  4. } else {
  5.     $aprobado = false;
  6.     echo "<b>El usuario ha suspendido: <b/> Nota: " . $bien . "<br>";
  7.     echo "Has fallado <b>" . $mal . "</b> respuestas";
  8. }

Ahí realizamos otra condición: En el caso de que la variable $bien sea 5 o mayor que 5 el usuario ha aprobado. Mostramos los datos con unos negritas para que quede chulo y listo.

Pruebalo y nos dices.
__________________
No te olvides de dar +1 a quien te echa un cable ;)

Etiquetas: examen, formulario, meter, variable, variables
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 00:05.