Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: kip13 en 19 de Marzo 2016, 16:35
-
Hola a todos, necesito de gran ayuda en un proyecto personal que estoy realizando, intento hacer una web que me muestre en un calendario semanal con las horas(como un horario o itinerario) de cada dia de la semana (valga la redundancia). Tengo una base de datos con los datos: id, nombre, telf, correo, fecha, horainicio, horasalida.
La verdad es que tengo lios porque he estado pensando en mejor colocar solo un campo que me almacene la fecha y la hora pero lo pienso y no sabria como mostrarlo en un calendario. He estado revisando mucho y he encontrado ciertos scripts y otras cosas que en realidad no me han ayudado aunque si me han guiado un poco a hacerme una idea algo basica de como podria mostrarlo.
Quiero mostrar algo sencillo, un simple calendario semanal que me muestre todas las horas en una columna y los dias de la semana actual en otras.
Algo como esto pero con ciertas horas mas:
(http://i.imgur.com/ts4Q9fF.png)
Las horas serian estaticas propias de la tabla y las fechas serian las de la semana actual pero, si en la base de datos que tengo hay un dato con la fecha y hora de la tabla pues me lo mostraria de alguna forma, ya sea con un mensaje que diga 'RESERVD' o algo parecido.
Pienso quizas que lo mejor es crear una tabla pero no sabria como adaptarla a mi gusto, por cuestion de fecha y horas.
Solo me gustaria saber como mostrar aquello, espero me ayuden.
Espero me haya hecho entender, muchas gracias desde ya, saludos.
El sistema que realizo es como uno de reserva a un estudio musical.
PD: EN ESTE CALENDARIO SOLO QUIERO MOSTRAR LOS DATOS, NADA MAS, NO QUIERO EDITARLOS.
-
Hola kip13
Habría que entender bien el problema, por lo que he entendido se trataría por ejemplo de una sala supongamos que una sala de reuniones o algo así y lo que querrías es mostrar el calendario por horas donde se pueda ver si la sala está reservada en esa hora o está libre.
Lo primero que habría que aclarar es cómo guardas la información en la base de datos. A partir de ahí ya harías la recuperación y el mostrar la tabla. Una forma habitual podría ser tener una tabla "Salas" donde figura el nombre de las salas, capacidad, etc. y otra tabla "Reservas" donde figuren idSala, fechaReserva, horaDesde, horaHasta de modo que ahí estén reflejadas todas las reservas de todas las salas
¿Cómo tienes organizada la información de reservas en base de datos?
-
Hola javi, gracias por responder, lo que tengo en mente es mostrar las reservaciones de horas en el dia de una sala de ensayo.
La base de datos la tengo así:
idbanda; int
banda; varchar(50)
correo; varchar(50)
telf; int(10)
dia_reserv; DATE
inicio_reserv; TIME
fin_reserv; TIME
Asi es como la tengo, quisiera tambien modificar los ultimos tres campos y en lugar de ellos, tener solo uno tipo DATETIME, pero no sabria como configurar para mostrar o para que no se repita si otra banda quiere reservarlo, asi que como lo tengo creo que esta bien.
Estuve pidiendo ayuda en otro foro y me dieron una idea pero sin lograr una conexión a la base de datos, logre crear gracias a la ayuda un calendario semanal de la semana actual, algo crudo y de aspecto muy viejo, tambien me recomendaron utilizar fullcalendar, he estado haciendo pruebas pero no entiendo toda la parte de la documentacion, siento que en la pagina no la explican del todo bien o quiza sea yo el inexperto.
Aunque encontré un foro donde hacen una configuracion casi parecida a lo que necesito, estare probando a ver que tal.
Por ahora te dejo aquí mi horario que logre hacer, eso si sin conectar a la base y sin poder cambiar a alguna otra semana que no sea la actual, por cierto olvide decir que no pude agregar las horas, aunque creo que con algun array he de poder hacerlo, no lo he avanzado porque me recomendaron mejor el fullcalendar por aspecto y porque me ahorrare un monton de tiempo, aunque este me da los mismos dolores de cabeza que mi creacion algo obsoleta jaja.
CODIGO HORARIO OBSOLETO:
<?php
//verificacion de semana actual
$ul = $ul = strtotime("week", time());;
$ul = strtotime('last monday');
//dias de la semana arreglo
$meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
$dias_semana = array('Lunes', 'Martes','Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo');
?>
<table border="1" id="tabla_diashoras" align="center" >
<thead >
<tr>
<?php
$mes_act=date("n", $ul);
echo '<th colspan="8">'.$meses[$mes_act - 1].'</th> ';
?>
</tr>
<tr>
<th>HORAS</th>
<?php
for($i=0;$i<7;$i++){
//Sumamos días a la fecha del lunes actual
$sd = strtotime("+$i day", $ul);
//comprobamos si la fecha del bucle es la fecha actual
if(date('Y-m-d', $sd) === date('Y-m-d')) {
//colocamos el dia actual en rojo y ponemos el array para mostrar los dias en español
echo '<th bgcolor="#FF6600" align="center" nowrap >'.$dias_semana[$i].' '.date("d", $sd).'</th> ';
} else {
//colocamos el el resto de los dias en gris y ponemos el array para mostrar los dias en español
echo '<th font color="gray" align="center" nowrap>'.$dias_semana[$i].' '.date("d", $sd).'</th> ';
}
}
?>
</tr>
</thead>
</table>
VISTA:
(http://i.imgur.com/y50xbTT.png)
Bueno y no publico nada del fullcalendar porque lo he dejado por un dia, ahora tendre que ponerme al dia y seguir buscando la forma de adaptar mi base y ajustar el fullcalendar, aunque quizas pueda utilizar este calendario obsoleto, si alguien puede ayudarme dandome alguna documentacion, codigo de guia o algo, le agradeceria mucho, en realidad no quiero que me lo hagan, quiero aprender, hago todo por intentar hayar la solucion.
Muchas gracias.
Saludos!!