Foros del Web » Programando para Internet » PHP »

Crear aleatoriedad juego

Estas en el tema de Crear aleatoriedad juego en el foro de PHP en Foros del Web. Hola a todos, Estoy desarrollando un juego tipo Trivial y para ello he creado un formulario dónde subo las preguntas y respuestas del juego a ...
  #1 (permalink)  
Antiguo 29/05/2013, 13:57
 
Fecha de Ingreso: mayo-2013
Mensajes: 2
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Crear aleatoriedad juego

Hola a todos,

Estoy desarrollando un juego tipo Trivial y para ello he creado un formulario dónde subo las preguntas y respuestas del juego a una base de datos. He conseguido que aparezcan las preguntas del juego de forma aleatoria pero no se lo que he de hacer para que se muestren sus respectivas respuestas de forma desordenada. Si alguien me puede ayudar se lo agradecería. A continuación os facilito lo que tengo programado hasta el momento. Saludos y gracias.

<?php
$conexion= mysqli_connect('localhost','root','','trivial');
if($_POST){

$pregunta = $_POST['pregunta'];
$respuesta_1 = $_POST['respuesta_1'];
$respuesta_2 = $_POST['respuesta_2'];
$respuesta_3 = $_POST['respuesta_3'];



$sql="INSERT INTO preguntas (pregunta,respuesta_1,respuesta_2,respuesta_3) VALUES ( '$pregunta','$respuesta_1','$respuesta_2', '$respuesta_3')";
echo $sql;
if(mysqli_query($conexion,$sql)){
echo 'bien';
}else{
echo 'mal';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Formulario</title>
<meta name="viewport" content="width=device-width, initial-scale=1">

</head>
<body>
<form method="post">

<b>pregunta</b><br>
<input type=text name='pregunta' size='200'><BR><BR>

<b>respuesta_1</b><br>
<input type=text name='respuesta_1' size='100'><BR><BR>

<b>respuesta_2</b><br>
<input type=text name='respuesta_2' size='100'><BR><BR

<b>respuesta_3</b><br>
<input type=text name='respuesta_3' size='100'><BR><BR


<button><input type="submit" value="Enviar" /></button>

</form>

<?php
$sql='SELECT * FROM preguntas ORDER BY RAND() LIMIT 1';
$result = mysqli_query($conexion,$sql);
while($row = mysqli_fetch_array($result)){
echo '<p>'.$row['pregunta'].'</p>' ;


}



?>
</body>

</html>
  #2 (permalink)  
Antiguo 29/05/2013, 14:35
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Crear aleatoriedad juego

Holas, MaJJik, y bienvenid@.

En vez de almacenar las alternativas de respuestas en variables separadas, puedes hacerlo en un array, el cual luego reordenas aleatoriamente y luego imprimes. De todos modos, podrías obtener las respuestas "desordenadas" ya desde la consulta SQL (por ej. en Mysql, usando ORDER BY RAND(), como lo has hecho con las preguntas).

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 29/05/2013, 15:47
 
Fecha de Ingreso: mayo-2013
Mensajes: 2
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Crear aleatoriedad juego

Cita:
Iniciado por quinqui Ver Mensaje
Holas, MaJJik, y bienvenid@.

En vez de almacenar las alternativas de respuestas en variables separadas, puedes hacerlo en un array, el cual luego reordenas aleatoriamente y luego imprimes. De todos modos, podrías obtener las respuestas "desordenadas" ya desde la consulta SQL (por ej. en Mysql, usando ORDER BY RAND(), como lo has hecho con las preguntas).

Saludos!
No tengo mucha idea de PHP, justo hoy he empezado a tocar algo y voy un poco perdido. ¿Como tendría que hacer para relacionar la pregunta con las 3 respuestas posibles para esa pregunta?. ¿Lo tendría que poner en este trozo de programación o empezar uno nuevo?. Perdona por mi ignorancia he buscado por Internet pero no logro dar con el planteamiento correcto, aún no le he pillado el rollo a este lenguaje. Saludos y mil gracias por tu tiempo.

<?php
$sql='SELECT * FROM preguntas ORDER BY RAND() LIMIT 1';
$result = mysqli_query($conexion,$sql);
while($row = mysqli_fetch_array($result)){
echo '<p>'.$row['pregunta'].'</p>' ;


}



?>
  #4 (permalink)  
Antiguo 29/05/2013, 23:49
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: Crear aleatoriedad juego

si lo tienes en una base de dato hay que saber si están en tablas separadas o una sola tabla...
el peor de los casos dos tablas separadas... tendrías que alinear las ID o hacer las tablas relacionadas... ya eso es tema de investigación y estudio y googlear mas ...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #5 (permalink)  
Antiguo 30/05/2013, 20:42
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Crear aleatoriedad juego

No había caído en que tienes las respuestas dentro de la misma tabla de las preguntas. Aunque esa forma de almacenar los datos no es la más usual, igual puedes lograr lo que buscas. Sería haciéndolo con la primera alternativa que te sugerí: almacenar las respuestas en un array. Ahora me explico un poco más (no sabía que eras novato en php):

Código PHP:
// esto es lo que ya tienes:
$sql='SELECT * FROM preguntas ORDER BY RAND() LIMIT 1';
$result mysqli_query($conexion,$sql);
while(
$row mysqli_fetch_array($result))
{
 echo 
'<p>'.$row['pregunta'].'</p>' ;
 
// y aca viene mi sugerencia:
 // guardas en un array php las respuestas:
 
$resp = array($row["respuesta_1"], $row["respuesta_2"], $row["respuesta_3"]);
 
// desordenas el array:
 
shuffle($resp);
 
// lo imprimes:
 
foreach ($resp as $r)
 {
   echo 
'<p>'.$r.'</p>';
 }

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*

Etiquetas: juego, respuestas
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 19:02.