Foros del Web » Programando para Internet » PHP »

Horario Semanal con BD y PHP

Estas en el tema de Horario Semanal con BD y PHP en el foro de PHP en Foros del Web. Hola a todos. Espero que alguien lo lea y me pueda ayudar. Llevo un tiempo dando vueltas y no logro la manera de hacer un ...
  #1 (permalink)  
Antiguo 28/03/2008, 09:43
 
Fecha de Ingreso: diciembre-2007
Mensajes: 33
Antigüedad: 16 años, 4 meses
Puntos: 0
Horario Semanal con BD y PHP

Hola a todos. Espero que alguien lo lea y me pueda ayudar. Llevo un tiempo dando vueltas y no logro la manera de hacer un horario semanal. He pensado en muchas opciones, pero ninguna me es funcional al 100%.
Tendria una BD con una tabla de eventos, con campos: id, evento, tipoevento, coldia, filhora, duracion.
Donde coldia seria la columna correspondiente al día de la semana (1 lunes, 2 martes, etc), filhora (la fila correspondiente a la hora del dia, 1 las 9, 2 las 10, etc...), duracion (numero de horas q dura el evento).
Pues bien, no se como representar eso en una tabla semanal de manera que quede bien.
Espero que a alguien se le ocurra una idea mejor o como plasmar lo de la bd en una tabla.
También había pensado en una matriz, pero no se como saldría eso luego. Ya estoy hehco un lio.
  #2 (permalink)  
Antiguo 28/03/2008, 11:29
 
Fecha de Ingreso: abril-2004
Mensajes: 39
Antigüedad: 20 años
Puntos: 2
Re: Horario Semanal con BD y PHP

El planteamiento, para mí, seria que a partir de la fecha de hoy, reconstruir toda la semana, sabiendo que son siete dias (o cinco). Entonces en la base de datos guardaria la fecha y la hora en la que se produce el evento en segundos.

Por ejemplo

Código PHP:
// Granularidad (30 min). Baso todas las horas en segundos a partir de las 00:00
// con una granularidad de 30 minutos.
$granularidad 30 60;
$eventos = array(
    array(
        
'30300' => array('Hora con el médico'),
        
'34200' => array('Dar de comer al perro')
    ),
    array(
        
'77400' => array('Ir a cenar con la novia')
    )
);
$dias = array('Lunes''Martes''Miércoles''Jueves''Viernes''Sábado''Domingo');
$max_hora = ((23*3600) + (59 60));
echo 
"<table>";
echo 
"<thead>";
echo 
"<tr>";
foreach(
$dias as $nombre_dia) {
    echo 
"<th>" $nombre_dia "</th>";
}
echo 
"</tr>";
echo 
"</thead>";
echo 
"<tbody>";
echo 
"<tr>";
foreach(
$dias as $num_dia => $nombre_dia) {
    echo 
"<td>";
    echo 
"<dl>";
    
$hay_eventos sizeof($eventos[$num_dia]) > 0;
    for(
$i 0$i <= $max_hora$i += $granularidad) {
        echo 
"<dt>" mostrarHoraAPartirDeSegundos($i) , "</dt>";
        echo 
"<dd>";
        if(
$hay_eventos) {
            echo 
mostrarEventos($eventos[$num_dia], $i);
        }
        echo 
"</dd>";
    }
    echo 
"</dl>";
    echo 
"</td>";
    
$hay_eventos FALSE;
}
echo 
"</tr>";
echo 
"</tbody>";
echo 
"</table>"
Aviso que este código no está probado así que es posible que haya algun error, pero es básicamente para aclarar el concepto a mi modo de ver.

Saludos!
__________________
Caiman Systems - Diseño y programación de aplicaciones de gestión y páginas web

Última edición por theUniC; 29/03/2008 a las 11:38
  #3 (permalink)  
Antiguo 28/03/2008, 12:05
 
Fecha de Ingreso: diciembre-2007
Mensajes: 33
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Horario Semanal con BD y PHP

No s, cro q no me he explicado muy bien.
A ver, hay eventos, q duran más o menos tiempo, es decir uno puede durar 1 hora, otro 30 min, otro 1 h y media, etc. El horario estarís dividido en franjas de 30 min.
En cada día puede haber 2 eventos distintos a la misma hora.
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 10:02.