Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

1 Frase Por Día

Estas en el tema de 1 Frase Por Día en el foro de Mysql en Foros del Web. Hola, Tengo una tabla que contiene muchas frases en diferentes filas, junto a un ID y una CATEGORÍA. Quiero seleccionar cada día una frase diferente, ...
  #1 (permalink)  
Antiguo 29/12/2009, 05:32
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 4 meses
Puntos: 1
1 Frase Por Día

Hola,

Tengo una tabla que contiene muchas frases en diferentes filas, junto a un ID y una CATEGORÍA.

Quiero seleccionar cada día una frase diferente, es decir, si hoy he mostrado (seleccionado) ID=1, mañana ID=2....

Y cuando llegue al final (tengo unas 90 frases) volver al principio.

Alguna idea?

Gracias!
  #2 (permalink)  
Antiguo 29/12/2009, 10:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: 1 Frase Por Día

Para eso tienes muchas opciones. Pero antes debes saber que el id no te servirá de mucho si eliminas alguna frase, puesto que ese número de id se habrá perdido. Yo pondría un campo orden numérico y ahí colocaría los números de orden de aparición. Otro dato importante es a partir de qué fecha vas a empezar (yo en mi ejemplo empiezo desde el 22 de diciembre de 2009):
Esto es sólo un experimento para que te hagas una idea:
SELECT frase FROM tabla WHERE orden =(select (MOD(datediff(curdate(),'2009-12-22'),(select count(*) from tabla))) +1)
Existe la posibilidad de hacerlo con limit y variables dentro del limit, pero eso deberías prepararlo con programación. Así te evitarías tener que usar un campo para el orden, pues usando ORDER BY ID LIMIT valordelmod, 1
Con programación existen muchas otras opciones, claro.
  #3 (permalink)  
Antiguo 29/12/2009, 17:47
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: 1 Frase Por Día

bueno si las fraces no tienen q ser mostradas en orden 1,2,3,... podes hacer un simple

select f.descripcion from fraces f where f.publicable = 1 orderby rand(date_format(now(),'%j')) limit 1

de esta forma todos los dias le pasara el numero de dia del año y con la funcion rand hara q tome un valor distinto durante todo el dia se mostrara la misma frase hasta q cambie de dia y el ordenamiento sea distinto

__________________
Degiovanni Emilio
developtus.com
  #4 (permalink)  
Antiguo 30/12/2009, 09:25
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: 1 Frase Por Día

Emilio,

Esa opcion es interesante, pero el problema que veo es que me puede aparecer maniana la misma frase de hoy, ya que el orden es random...
  #5 (permalink)  
Antiguo 30/12/2009, 09:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: 1 Frase Por Día

Emilio,

Esa opcion es interesante, pero el problema que veo es que me puede aparecer maniana la misma frase de hoy, ya que el orden es random...
  #6 (permalink)  
Antiguo 30/12/2009, 09:42
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: 1 Frase Por Día

Me encantan estos "mini ejercicios" jejeje.

Divide date("z") entre 90 y quedate con el resto. date("z") es el numero de dia del año, de 1 a 365. Seria algo asi:

$idbuscar=((date("z")+1) % 90);

*Le sumo 1 porque el primer dia del año si no recuerdo mal lo toma como 0, y ya sabemos que tratar de dividir 0 entre algo = error!

Luego haces un:

SELECT * from tabla ORDER BY ID ASC LIMIT $idbuscar,1

Espero que te sirva, o al menos te guie para una idea! Saludos, buen finde y buen karma
  #7 (permalink)  
Antiguo 30/12/2009, 13:38
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: 1 Frase Por Día

@samyb8 si puede q se de el caso escepcional q se de dos dias seguidos la misma frase

el ejemplo de @Vun seria otra buena opcion solo hay q incluir php
__________________
Degiovanni Emilio
developtus.com
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 08:26.