Horarios

Estoy haciendo una Web para una institución que realiza actividades durante la semana.
Quiero poner un tablón de actividades y horarios. Quiero también hacer un formulario para actualizar este tablón, de manera que se lo ponga fácil a los que llevan el tema.
Pensé que lo ideal es que el formulario tenga Combos para seleccionar Día (Lun, Mart), Hora (supongo que serian 2, hora comienzo y hora fin) y un campo para escribir la actividad. Al final, la actividad se debería de colocar en el semanario.
Me gustaría usar PHP para ello.
¿Cómo debería de proceder?

1 Respuesta

Respuesta
1
Pues deberías realizar el formulario tal y como lo tienes planificado, con un botón para enviar los datos. En la página que los recibe, recoges los datos y los guardas en alguna parte como una base de datos.
Por ejemplo:
<form action="guardar.php" method="post">
<select name="dia"><option>Lunes</option><option>Martes</option></select>
// Etc.
</select>
</form>
Y en la página guardar.php:
<?php
echo $_POST["dia"];
// Guardar los datos en la tabla
?>
Estoy haciéndolo de esta manera:
¿Crees qué es la mejor manera de definir la hora? Es importante para mi que se pueda poner el minuto.
Mi idea es crear una tabla con días. Para no complicarme, voy a poner Mañana y Tarde. Entonces, con PHP, comprobar si el día coincide con el día que yo le marque y si la hora supera o no supera la hora que yo le marque.
Pero todo esto tengo que hacerlo 7 veces (7 días) en la tabla, es decir:
Primera celda: Si dia es = lunes" echo...
Segunda celda: Si dia es = martes echo...
Es esa la manera?
Mil gracias!
<label>Selecciona el dia:</label>
<select name="Dia">
<option name="Lunes" >Lunes</option>
<option name="Martes">Martes</option>­
<option name="Miercoles">Miercoles</option>­
<option name="Jueves">Jueves</option>
<option name="Viernes">Viernes</option>
<option name="Shabbat">Shabbat</option>
<option name="Domingo">Domingo</option>
</select>
<br />
<br />
<label>Selecciona la hora de comienzo:</label>
<select name="horaComienzo" size="14">
<option name="6:00h" >6</option>
<option name="7:00h" >7</option>
<option name="8:00h" >8</option>
<option name="9:00h" >9</option>
<option name="10:00h" >10</option>
<option name="11:00h" >11</option>
<option name="12:00h" >12</option>
<option name="13:00h" >13</option>
<option name="14:00h" >14</option>
<option name="15:00h" >15</option>
<option name="16:00h" >16</option>
<option name="17:00h" >17</option>
<option name="18:00h" >18</option>
<option name="19:00h" >19</option>
<option name="20:00h" >20</option>
<option name="21:00h" >21</option>
<option name="22:00h" >22</option>
<option name="23:00h" >23</option>
<option name="24:00h" >24</option>
</select>
<br />
<br />
<label>Selecciona el minuto de comienzo:</label>
<input name="minComienzo" size="14">
</input>
<br />
<br />
<select name="horaFinal" size="14">
<option name="6:00h" >6</option>
<option name="7:00h" >7</option>
<option name="8:00h" >8</option>
<option name="9:00h" >9</option>
<option name="10:00h" >10</option>
<option name="11:00h" >11</option>
<option name="12:00h" >12</option>
<option name="13:00h" >13</option>
<option name="14:00h" >14</option>
<option name="15:00h" >15</option>
<option name="16:00h" >16</option>
<option name="17:00h" >17</option>
<option name="18:00h" >18</option>
<option name="19:00h" >19</option>
<option name="20:00h" >20</option>
<option name="21:00h" >21</option>
<option name="22:00h" >22</option>
<option name="23:00h" >23</option>
<option name="24:00h" >24</option>
No sé si entiendo mucho lo que se pretende. En todo caso, los minutos no los has colocado todavía. Supongo que nadie programa nada para las 10:21, lo normal es que des opción para franjas de 5 minutos y entonces tienes una combo con 13 opciones (00, 05, 10, 15...)
Si lo quieres hacer minuto a minuto, te recomiendo que uses dos combos: una para las decenas y otra para las unidades de minuto, porque una combo de 60 valores no es nada práctica. También puedes optar por una casilla de edición para que tecleen los minutos.
Y en cuanto a la base de datos,
¿Qué tablas debo crear para poder añadir o eliminar eventos fácilmente y mostrarlos también con facilidad?
Gracias
Entiendo que con una sola tabla tienes suficiente: un identificador, el día de la semana, la hora de inicio, la hora de final y la descripción de la actividad.
OK. Lo tengo bastante bien por ahora.
El tema de como mostrarlo es lo que me preocupa:
- Me gustaría que cada evento se colocara en su posición (dentro de una tabla con los días de la semana).
Lo que he hecho hasta ahora es:
- Una tabla con los días de la semana y 2 filas por día (mañana y tarde)
- El PHP detecta si dia= "Lunes" y si hora < 13 y, si es cierto, muestra los datos en el Lunes por la mañana.
Lo que pasa es que tengo que repetir lo mismo con cada día de la semana y cada periodo (mañana y tarde).
¿Sugieres alguna forma más Inteligente y efectiva?
Muchas gracias
Perdona, solo aclarar algo.
La tabla en MYSQL contiene: ID, día, horaComienzo, miComienzo, horaFin, minFin, Actividad, grupo.
La tabla a la que me refería en el anterior mensaje es una HTML donde se mostraran los datos:
Cada día de la semana en la primera fila y los huecos correspondientes en las siguientes filas.
GraciaS!
Te sugiero que hagas una dos consultas diferentes: una para la mañana y otra para la tarde. Así puedes tener ordenadas las actividades según las tienes que mostrar. Por ejemplo:
"SELECT * FROM tutabla WHERE horaComienzo < '13:00:00' ORDER BY dia ASC, horaComienzo ASC"
Esta consulta te da las actividades de cada día ordenadas dentro de ese día, con lo cual puedes llenar las casillas de la mañana de forma ordenada.
Luego haces otra consulta con horaComienzo >= '13:00:00' para las casillas de la tarde.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas