Foros del Web » Programando para Internet » PHP »

[Ayuda] Mostrar registros de forma aleatoria

Estas en el tema de [Ayuda] Mostrar registros de forma aleatoria en el foro de PHP en Foros del Web. Buenas a tod@s, Tengo una consulta que me devuelve 50 registros (a modo de ejemplo), de esos 50 registros 5 registros tiene privilegios se muestran ...
  #1 (permalink)  
Antiguo 09/08/2010, 17:26
Avatar de Sophie_Madrid  
Fecha de Ingreso: agosto-2008
Mensajes: 237
Antigüedad: 15 años, 8 meses
Puntos: 5
[Ayuda] Mostrar registros de forma aleatoria

Buenas a tod@s,

Tengo una consulta que me devuelve 50 registros (a modo de ejemplo), de esos 50 registros 5 registros tiene privilegios se muestran delante de los otros 45 por un flag que tenemos en la BBDD.

Ahora bien lo que me gustaría es que pudiera devolver esos 5 registros de forma aleatoria, es decir, que cada vez que un usuario acceda al listado de registros esos 5 aparezcan ordenados de diferente forma.

También tengo un script de páginación que me pagina los resutados cada 10 registros.

En el ejemplo que os comento en la primera se mostrarían los 5 registros con privilegios y otros 5 sin privilegios, en la segunda página se mostrarían 10 registros sin privilegios y asi hasta completar las 5 páginas.

He visto algo de info por Internet para crearlo a partir de la clausula rand en la consulta select, pero claro esto no me vale porque el rand lo haria de los 50 resultados y no de los 5 primeros.

El otro problema que veo es que si hago el rand de los 5 y el otra consulta para el resto, el script de paginacion no me funcionaria correctamente.

Alguna idea para poder resolver este problemilla.

Muchisimas gracias por adelanta.

Un saludo.
  #2 (permalink)  
Antiguo 09/08/2010, 18:06
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: [Ayuda] Mostrar registros de forma aleatoria

Hola.

prueba con algo como esto:

Código MySQL:
Ver original
  1.    todos,
  2.    mis,
  3.    campos,
  4.    rand() as orden
  5.    tabla
  6. order by orden;

suerte
  #3 (permalink)  
Antiguo 09/08/2010, 18:19
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: [Ayuda] Mostrar registros de forma aleatoria

por como lo veo, creo que deberías de hacer dos consultas
1.- consulta de los registros con privilegios con un order by rand() y esta consulta solo se hará cuando sea la 1ra página

2.- una segunda consulta para el resto de los registros y con un orden descendente o ascendente según lo necesites, para la 1ra pág. tendrá un limite de 5 y para las demás un limite de 10.

espero que te de una idea, saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: aleatoria, registros, formulario
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 11:49.