Foros del Web » Programando para Internet » PHP »

Randomizar consultas

Estas en el tema de Randomizar consultas en el foro de PHP en Foros del Web. Cómo puedo mostar resultados random de alguna consulta. Ejemplo tengo 500 registros y quiero simplemente hacer una consulta a 10 registros aleatorios de una tabla, ...
  #1 (permalink)  
Antiguo 07/09/2010, 13:41
Usuario no validado
 
Fecha de Ingreso: abril-2010
Ubicación: La habana
Mensajes: 229
Antigüedad: 14 años
Puntos: 4
Cómo puedo mostar resultados random de alguna consulta.
Ejemplo tengo 500 registros y quiero simplemente hacer una consulta a 10 registros aleatorios de una tabla, pero que si refresco la página la consulta se le hagan a 10 registros aleatoriamte también.
Salu2

Ups! Se me olvidó dar gracias de ante mano.
Salu2
  #2 (permalink)  
Antiguo 07/09/2010, 14:10
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 8 meses
Puntos: 27
Respuesta: Randomizar consultas

Si sabes la cantidad de registros que tienes (se puede hacer con un SELECT COUNT(*) FROM ...) el código es algo así:
Código PHP:
Ver original
  1. <?php
  2. $num_registros = 10; // el numero de registros que queremos obtener
  3. $max_registros = 500; // aqui hay que obtener el nº total de registros
  4.  
  5. // el máximo es todos los registros menos lo que quieres coger
  6. // para asegurarnos de que siempre tengamos resultados
  7. // para rellenar $num_registros que hemos pedido
  8. $inicio = rand(0, $max_registros - $num_registros);
  9.  
  10. $final = $inicio + $num_registros;
  11.  
  12. $resultado = mysql_query('SELECT * FROM la_tabla WHERE [filtros] LIMIT ' . $inicio . ', ' . $final);
  13.  
  14. ?>

Ya solo lo tienes que adapar al código que tu quieras o añadirle como mínime el "mysql_query(...) or die(mysql_error())"

Te va bien el código?
  #3 (permalink)  
Antiguo 07/09/2010, 14:12
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Randomizar consultas

Existe rand en MySQL. Te recomiendo que busques en el foro y también en el manual oficial para que veas varios ejemplos de como hacerlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 07/09/2010, 14:27
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 8 meses
Puntos: 27
Respuesta: Randomizar consultas

abimaelrc tiene razón. Si no quieres resultados adyacentes puedes usar este código SQL directamente:
Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE filtros=valor ORDER BY RAND() LIMIT 10;
  #5 (permalink)  
Antiguo 07/09/2010, 14:31
Usuario no validado
 
Fecha de Ingreso: abril-2010
Ubicación: La habana
Mensajes: 229
Antigüedad: 14 años
Puntos: 4
Respuesta: Randomizar consultas

Cita:
Iniciado por perryjr Ver Mensaje
abimaelrc tiene razón. Si no quieres resultados adyacentes puedes usar este código SQL directamente:
Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE filtros=valor ORDER BY RAND() LIMIT 10;
Ok pienso que esto sirve, gracias por todo, encuanto a la variante de que tenga que conocer cuantos registros tengo, no es que los conozca pero se puede averioguar y almacenar en una variable para luego hacer lo me ponen cómo primera respuesta .

Salu2 a Tod2

Etiquetas: Ninguno
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:17.