Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/09/2009, 20:29
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: MySQL mostrar 10 resultados por 7 dias, y pasado el septimo, se renuevan

Hola
Pues hay varias maneras de efectuar eso, pero creería que la más sencilla es que agregues un campo a la tabla llamado "orden", y que agregues a tu consulta ese campo, es decir algo asi:

Código PHP:
SELECT m.subjectm.ID_TOPICt.ID_TOPICt.puntos

FROM 
(smf_topics AS tsmf_messages AS m)

WHERE t.ID_TOPIC m.ID_TOPIC

AND t.orden 1 ORDER BY t.puntos DESC

LIMIT 10 
Donde 1 es el valor que tomarian los 10 primeros registros, y obviamente para esto necesitas ya sea un procedimiento almacenado o un script de php aparte que se encargue de hacer esta tarea

El procedimiento almacenado conlleva saber del tema, y no se si lo manejes, por ende creería que tal vez lo más indicado para vos sería hacer un archivo php, en donde hagas lo siguiente:

1. El campo orden de los registros lo pongas en 0 u otro valor diferente de uno (con un update a los que tengas en 1, pues los demás ya deben tener el valor 0 o el que pongas por defecto en ese campo)
2. Luego del paso 1, traigas la consulta anterior que tenías, es decir esta
Código PHP:
SELECT m.subjectm.ID_TOPICt.ID_TOPICt.puntos

FROM 
(smf_topics AS tsmf_messages AS m)

WHERE t.ID_TOPIC m.ID_TOPIC

ORDER BY t
.puntos DESC

LIMIT 10 
3. Recorriendo los registros resultantes de esta consulta, hacer un update a cada uno de ellos en su campo orden y le pones el valor 1


Y este archivo php nuevo tendrías que ejecutarlo semanalmente, o bueno, crear una tarea programada en windows o un cron job en linux (no se cual manejes) que se encargue de hacer eso semanalmente

Y ya con eso, semanalmente cambiarian los resultados que necesitas
Espero te sirva
Saludos