Evento por Día

Hola,
Tengo una tabla Mysql con los siguientes campos:
Id
Evento
Hora
Fecha (es un campo date normal)
Día (recoge el día de la semana en que el evento tiene lugar)
Repetido (1 si el evento se repite cada semana, 0 si es único)
Quiero presentar los eventos repetidos y su horario. Dado que son repetidos de manera continua, la fecha no me interesa, ya que pido la fecha del próximo evento y recojo el día en que sera. Si es Lunes, serán todos los Lunes.
Aquí viene la consulta:
Quiero presentar los eventos repetidos ordenador por día, es decir, quiero algo así:
Lunes
Evento A
A las 8:00
Martes
Miércoles
Evento X
A las 9:00
¿Cómo hago para que se me ordenen los días así y los eventos me vayan apareciendo en su día correspondiente?
No quiero poner 7 consultas SELECT WHERE dia='dia de la semana'... Creo que me ralentizara mucho...
Gracias!
1

1 respuesta

Respuesta
1
No te pongo código, si no pseudocodigo, tendría que hacerme una tabla igual para comprobar que funcionase:
funcion eventos_repetidos($base,$solo_laborables)
abrir_base_datos();
si $solo_laborables entonces $numero=5; else $numero=7;
array dias (1=>LUNES,2=>MARTES,3=>MIERCOLES) //así con todos
desde $i = 1 hasta $i=$numero
{
$dia = consultas el array según $numero
$consulta = select en la tabla eventos los repetidos correspondientes al dia $dia ordenados por hora
print(" $día <br/>")
desde 1 hata numero de eventos print (evento y hora)

Kike
Wow, es genial.
Solo una cosa.
¿Cómo puedo obtener desde mi tabla el valor de la variable $numero? Ya que quiero presentar solo los días en los que haya evento, es decir:
No quiero hacer echo "LUNES" y que este vacío porque no haya ningún evento.
A lo mejor usando SELECT ... GROUP BY?
No hace falta hacer una consulta compleja, en el código se puede cambiar y poner:
desde $i = 1 hasta $i=$numero 

$dia = consultas el array según $numero 
$consulta = select en la tabla eventos los repetidos correspondientes al dia $dia ordenados por hora 
if numero-de_eventos>0
<span style="white-space: pre;"> </span>{<span style="white-space: pre;"> </span>
<span style="white-space: pre;"> </span>print(" $día <br/>") 
<span style="white-space: pre;"> </span>desde 1 hata numero de eventos print (evento y hora) 
<span style="white-space: pre;"> </span>}
}
Así solo te imprime los días que tienen algún evento
Kike
PD te estoy mirando lo del UTF8, yo siempre uso el UTF8_unicode, una vez se que puse el español, daba problemas y la cambié a unicode pero los datos que estaban ya mal guardados no se corrigieron. Estoy muy pillao estos días y hago lo que puedo, en cuanto tenga algo te lo pongo, tengo que hacer alguna prueba, acabo de reinstalar el sO y me faltan muchos programas y configuraciones por meter.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas