Foros del Web » Programando para Internet » PHP »

Logica para Trivia de preguntas en php

Estas en el tema de Logica para Trivia de preguntas en php en el foro de PHP en Foros del Web. Saludos, Lo unico que quiero es unas cuantas recomendaciones de como hacer una trivia de preguntas en php, me gustaria saber como lo arian los ...
  #1 (permalink)  
Antiguo 16/05/2012, 11:15
 
Fecha de Ingreso: agosto-2009
Mensajes: 78
Antigüedad: 14 años, 7 meses
Puntos: 2
Logica para Trivia de preguntas en php

Saludos,

Lo unico que quiero es unas cuantas recomendaciones de como hacer una trivia de preguntas en php, me gustaria saber como lo arian los profesionales.

la idea es la siguiente.

Tengo 20 preguntas, en la base de datos. de esas 20 preguntas tengo que mostrar tres aleatorias al usuario para que la responda, si responde dos preguntas correctas de las tres entonces gano, si responde dos malas de tres, entonces perdios

Quiciera que me recomendaran algo de como hacer esto ya que hice algo parecido una ves y tube que escribir muchoo codigo y creo que no es funcional

Posteo el codigo de lo que hice una ves para que me den su recomendacion de como esto puede quedar mejor. no se basen en este codigo que no tiene que ver nada con lo que voy hacer ahora.

Código PHP:
if($_POST['ques']){
    
$resultado='';
    
$respuesta1A'1A-) Premio Nacional a la Calidad de la Pequeña Industria de Manufactura';
    
$respuesta1B'1B-) Premio Nacional a la Calidad de la Mediana Industria de Manufactura';
    
$respuesta1C'1C-) Premio Nacional a la Calidad de la Gran Industria de Manufactura';

    
$respuesta2A'2A-)Premio Nacional a la Calidad de la Pequeña Empresa de Servicios';
    
$respuesta2B'2B-)Premio Nacional a la Calidad de la Mediana Empresa de Servicios';
    
$respuesta2C'2C-)Premio Nacional a la Calidad de la Gran Empresa de Servicios';    
    
    
$p1$_POST['p1'];
    
$p2$_POST['p2'];
    
$p3$_POST['p3'];
    
$p4$_POST['p4'];
    
    
$resultado"Debe Completar el formulario";
    
    
//condicionales para las respuesta 1A
    
if($p1=='a' and $p2=='a' and $p3=='a' and $p4=='a'){ $resultado$respuesta1A;}     
    if(
$p1=='a' and $p2=='a' and $p3=='b' and $p4=='a'){ $resultado$respuesta1A;}
    if(
$p1=='a' and $p2=='a' and $p3=='c' and $p4=='a'){ $resultado$respuesta1A;}
    
    if(
$p1=='a' and $p2=='a' and $p3=='a' and $p4=='a'){ $resultado$respuesta1A;}     
    if(
$p1=='a' and $p2=='b' and $p3=='a' and $p4=='a'){ $resultado$respuesta1A;}
    if(
$p1=='a' and $p2=='c' and $p3=='a' and $p4=='a'){ $resultado$respuesta1A;}    

    if(
$p1=='a' and $p2=='a' and $p3=='a' and $p4=='a'){ $resultado$respuesta1A;}     
    if(
$p1=='b' and $p2=='a' and $p3=='a' and $p4=='a'){ $resultado$respuesta1A;}
    if(
$p1=='c' and $p2=='a' and $p3=='a' and $p4=='a'){ $resultado$respuesta1A;}

    
    
//condicionales para las respuesta 2A
    
if($p1=='a' and $p2=='a' and $p3=='a' and $p4=='b'){ $resultado$respuesta2A;}     
    if(
$p1=='a' and $p2=='a' and $p3=='b' and $p4=='b'){ $resultado$respuesta2A;}
    if(
$p1=='a' and $p2=='a' and $p3=='c' and $p4=='b'){ $resultado$respuesta2A;}
    
    if(
$p1=='a' and $p2=='a' and $p3=='a' and $p4=='b'){ $resultado$respuesta2A;}     
    if(
$p1=='a' and $p2=='b' and $p3=='a' and $p4=='b'){ $resultado$respuesta2A;}
    if(
$p1=='a' and $p2=='c' and $p3=='a' and $p4=='b'){ $resultado$respuesta2A;}    

    if(
$p1=='a' and $p2=='a' and $p3=='a' and $p4=='b'){ $resultado$respuesta2A;}     
    if(
$p1=='b' and $p2=='a' and $p3=='a' and $p4=='b'){ $resultado$respuesta2A;}
    if(
$p1=='c' and $p2=='a' and $p3=='a' and $p4=='b'){ $resultado$respuesta2A;}    
    
    
    
    
        
//condicionales para las respuesta 2A
    
if($p1=='b' and $p2=='b' and $p3=='a' and $p4=='a'){ $resultado$respuesta1B;}     
    if(
$p1=='b' and $p2=='b' and $p3=='b' and $p4=='a'){ $resultado$respuesta1B;}
    if(
$p1=='b' and $p2=='b' and $p3=='c' and $p4=='a'){ $resultado$respuesta1B;}
    
    if(
$p1=='b' and $p2=='a' and $p3=='b' and $p4=='a'){ $resultado$respuesta1B;}     
    if(
$p1=='b' and $p2=='b' and $p3=='b' and $p4=='a'){ $resultado$respuesta1B;}
    if(
$p1=='b' and $p2=='c' and $p3=='b' and $p4=='a'){ $resultado$respuesta1B;}    

    if(
$p1=='a' and $p2=='b' and $p3=='b' and $p4=='a'){ $resultado$respuesta1B;}     
    if(
$p1=='b' and $p2=='b' and $p3=='b' and $p4=='a'){ $resultado$respuesta1B;}
    if(
$p1=='c' and $p2=='b' and $p3=='b' and $p4=='a'){ $resultado$respuesta1B;}
    
    
//condicionales para las respuesta 2A
    
if($p1=='b' and $p2=='b' and $p3=='a' and $p4=='b'){ $resultado$respuesta2B;}     
    if(
$p1=='b' and $p2=='b' and $p3=='b' and $p4=='b'){ $resultado$respuesta2B;}
    if(
$p1=='b' and $p2=='b' and $p3=='c' and $p4=='b'){ $resultado$respuesta2B;}
    
    if(
$p1=='b' and $p2=='a' and $p3=='b' and $p4=='b'){ $resultado$respuesta2B;}     
    if(
$p1=='b' and $p2=='b' and $p3=='b' and $p4=='b'){ $resultado$respuesta2B;}
    if(
$p1=='b' and $p2=='c' and $p3=='b' and $p4=='b'){ $resultado$respuesta2B;}    

    if(
$p1=='a' and $p2=='b' and $p3=='b' and $p4=='b'){ $resultado$respuesta2B;}     
    if(
$p1=='b' and $p2=='b' and $p3=='b' and $p4=='b'){ $resultado$respuesta2B;}
    if(
$p1=='c' and $p2=='b' and $p3=='b' and $p4=='b'){ $resultado$respuesta2B;}    
    
        


        
//condicionales para las respuesta 3A
    
if($p1=='c' and $p2=='c' and $p3=='a' and $p4=='a'){ $resultado$respuesta1C;}     
    if(
$p1=='c' and $p2=='c' and $p3=='b' and $p4=='a'){ $resultado$respuesta1C;}
    if(
$p1=='c' and $p2=='c' and $p3=='c' and $p4=='a'){ $resultado$respuesta1C;}
    
    if(
$p1=='c' and $p2=='a' and $p3=='c' and $p4=='a'){ $resultado$respuesta1C;}     
    if(
$p1=='c' and $p2=='b' and $p3=='c' and $p4=='a'){ $resultado$respuesta1C;}
    if(
$p1=='c' and $p2=='c' and $p3=='c' and $p4=='a'){ $resultado$respuesta1C;}    

    if(
$p1=='a' and $p2=='c' and $p3=='c' and $p4=='a'){ $resultado$respuesta1C;}     
    if(
$p1=='b' and $p2=='b' and $p3=='c' and $p4=='a'){ $resultado$respuesta1C;}
    if(
$p1=='c' and $p2=='c' and $p3=='c' and $p4=='a'){ $resultado$respuesta1C;}
    
    
//condicionales para las respuesta 3A
    
if($p1=='c' and $p2=='c' and $p3=='a' and $p4=='b'){ $resultado$respuesta2C;}     
    if(
$p1=='c' and $p2=='c' and $p3=='b' and $p4=='b'){ $resultado$respuesta2C;}
    if(
$p1=='c' and $p2=='c' and $p3=='c' and $p4=='b'){ $resultado$respuesta2C;}
    
    if(
$p1=='c' and $p2=='a' and $p3=='c' and $p4=='b'){ $resultado$respuesta2C;}     
    if(
$p1=='c' and $p2=='b' and $p3=='c' and $p4=='b'){ $resultado$respuesta2C;}
    if(
$p1=='c' and $p2=='c' and $p3=='c' and $p4=='b'){ $resultado$respuesta2C;}    

    if(
$p1=='a' and $p2=='c' and $p3=='c' and $p4=='b'){ $resultado$respuesta2C;}     
    if(
$p1=='b' and $p2=='b' and $p3=='c' and $p4=='b'){ $resultado$respuesta2C;}
    if(
$p1=='c' and $p2=='c' and $p3=='c' and $p4=='b'){ $resultado$respuesta2C;}
    
    
    
    
//Condicionales para las cuando las 4 letras sean diferentes (industrial)
    
if($p1=='b' and $p2=='c' and $p3=='a' and $p4=='a'){ $resultado$respuesta1A;}
    if(
$p1=='c' and $p2=='b' and $p3=='a' and $p4=='a'){ $resultado$respuesta1A;}

    if(
$p1=='a' and $p2=='c' and $p3=='b' and $p4=='a'){ $resultado$respuesta1B;}
    if(
$p1=='c' and $p2=='a' and $p3=='b' and $p4=='a'){ $resultado$respuesta1B;}    
    
    if(
$p1=='a' and $p2=='b' and $p3=='c' and $p4=='a'){ $resultado$respuesta1C;}     
    if(
$p1=='b' and $p2=='a' and $p3=='c' and $p4=='a'){ $resultado$respuesta1C;}
    
    
//Condicionales para las cuando las 4 letras sean diferentes (servicios)
    
if($p1=='b' and $p2=='c' and $p3=='a' and $p4=='b'){ $resultado$respuesta2A;}
    if(
$p1=='c' and $p2=='b' and $p3=='a' and $p4=='b'){ $resultado$respuesta2A;}

    if(
$p1=='a' and $p2=='c' and $p3=='b' and $p4=='b'){ $resultado$respuesta2B;}
    if(
$p1=='c' and $p2=='a' and $p3=='b' and $p4=='b'){ $resultado$respuesta2B;}    
    
    if(
$p1=='a' and $p2=='b' and $p3=='c' and $p4=='b'){ $resultado$respuesta2C;}     
    if(
$p1=='b' and $p2=='a' and $p3=='c' and $p4=='b'){ $resultado$respuesta2C;}    
    
    
    
    
    } 
  #2 (permalink)  
Antiguo 16/05/2012, 11:50
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Logica para Trivia de preguntas en php

lo que podrias hacer es volcar en un vector (array) todas las combinaciones correctas (vos veras como te es mas facil de volcar los datos, hay varias formas) y despues buscar las respuestas en ese vector con un in_array() de esta manera te ahorras todos los if que hiciste, en donde los reemplazarias por uno solo que seria donde preguntas si la combinacion que dio el usuario se encuentra dentro del vector de posibilidades correctas, caso verdadero, gano, caso contrario perdio..

Espero que hayas entendido mi solucion, igual hay varias, la mas facil que se me ocurre ahora es esta.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 16/05/2012, 12:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 78
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Logica para Trivia de preguntas en php

Mushisims gracias, es una posibilidad y tienes toda la razon... si nadie mas sugiere alguna entonces pues asi lo are y si tengo alguna duda en aplicar la logica pues consultare en el mismo tema. muchisimas gracias por esponder...
  #4 (permalink)  
Antiguo 16/05/2012, 12:38
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Logica para Trivia de preguntas en php

Sentite libre de preguntar lo que necesites, el foro esta para eso
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 18/05/2012, 12:44
 
Fecha de Ingreso: agosto-2009
Mensajes: 78
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Logica para Trivia de preguntas en php

Tengo una pregunta... creo que es una sencilles pero tengo la cabeza hecha un lio.

Me gustaria saber como puedo sacar los valores de un array que tengo dentro de una funcion


Código PHP:



function preguntas($pg){
    
$preguntas= array();
$vmd5('1',false);
$fmd5('0',false);

$preguntas[]= '<input type="radio" value="'.$v.'" name="'.$pg.'" />';
                    
$preguntas[]= '<input type="radio" value="'.$f.'" name="'.$pg.'" />';
                    
$preguntas[]= '<input type="radio" value="'.$v.'" name="'.$pg.'" />';

                    
}


echo 
preguntas($pg); 
ya se que esto no es lo correcto...

Como seria la forma correcta?
  #6 (permalink)  
Antiguo 21/05/2012, 04:55
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Logica para Trivia de preguntas en php

Pude ser que te referis a array_values()?

para esto tendria que ser asi:

Código PHP:
Ver original
  1. function preguntas($pg){
  2.      
  3. $preguntas= array();
  4. $v= md5('1',false);
  5. $f= md5('0',false);
  6.  
  7. $preguntas[]= '<input type="radio" value="'.$v.'" name="'.$pg.'" />';
  8.                      
  9. $preguntas[]= '<input type="radio" value="'.$f.'" name="'.$pg.'" />';
  10.                      
  11. $preguntas[]= '<input type="radio" value="'.$v.'" name="'.$pg.'" />';
  12.  
  13.  return $preguntas:                  
  14. }
  15.  
  16. print_r(array_values(preguntas($pg)));
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #7 (permalink)  
Antiguo 17/11/2012, 10:28
Avatar de melannycc  
Fecha de Ingreso: noviembre-2012
Mensajes: 2
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Logica para Trivia de preguntas en php

Yo estoy haciendo casi lo mismo, bueno tengo pensado hacerlo. Pero no se como hacer la base de datos no se si debo hacer 3 tablas 1 con usuario otra con preguntas y otra con las respuestas y calificaciones. No lo se. S.o.s si me puedn ayudar se los agradeceria

Etiquetas: formulario, logica, preguntas, trivia, usuarios
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 08:57.