Foros del Web » Programando para Internet » PHP »

Obtención aleatoria de resultado segun una busqueda

Estas en el tema de Obtención aleatoria de resultado segun una busqueda en el foro de PHP en Foros del Web. Buenas noches a todos ^_^ Estoy haciendo una búsqueda a una base de datos, y dentro de los valores encontrados, quiero recoger uno al azar ...
  #1 (permalink)  
Antiguo 08/02/2009, 16:09
 
Fecha de Ingreso: agosto-2008
Mensajes: 166
Antigüedad: 15 años, 8 meses
Puntos: 1
Obtención aleatoria de resultado segun una busqueda

Buenas noches a todos ^_^

Estoy haciendo una búsqueda a una base de datos, y dentro de los valores encontrados, quiero recoger uno al azar (con las mismas probabilidad que el resto), para ello lo estoy haciendo de esta forma:

$querytiposobjetos=mysql_query("SELECT * FROM dbtipos WHERE tipo LIKE '".$objetotipo[$k]."' ORDER BY tiposobjetoid") or die("Error en query:".mysql_error() );
echo $numresultados=mysql_num_rows($querytiposobjetos); //Num resultados
echo $tipoobjetoaleatorio=rand(1,$numresultados); // Numero aleatorio dentro de los resultados
mysql_data_seek($querytiposobjetos,$tipoobjetoalea torio); //Posiciono ese numero en la busqueda (esto no me va bien, no se hará así digo yo)
$row=mysql_fetch_array($querytiposobjetos);
echo $row['tiposobjeto'];

El caso es que ocurren varias cosas:
1.- No sé si he liado la madeja con este asunto, si hay otra forma más sencilla de hacerlo os lo agradecería. (por lo menos lo intento... jeje)
2.- No va bien, no me coincide el nº sacado en el rand, con el resultado obtenido.
3.-Como esto se ejecuta dentro de otro bucle y lo hace por tanto varias veces, con el primer resultado no da ningún error pero a partir del segundo ya destartala el resto de querys y sale un error con el mysql_data_seek.


Buenoo.... creo que eso es todo. Le he dado mil vueltas y no consigo que funcione bien. Gracias por anticipado y un saludo
  #2 (permalink)  
Antiguo 08/02/2009, 16:15
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtención aleatoria de resultado segun una busqueda

En tu consulta, ordena los resultados aleatoriamente:

Código sql:
Ver original
  1. SELECT * FROM tabla ORDER BY RAND() LIMIT 1

  #3 (permalink)  
Antiguo 08/02/2009, 16:17
 
Fecha de Ingreso: agosto-2008
Mensajes: 166
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Obtención aleatoria de resultado segun una busqueda

OUCH!!!! Ya van dos hoy así!!! jejeje, Muchas gracias!!!

Un saludo
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 07:57.