Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2014, 10:14
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Preparando una tabla mysql para hacer un horario semanal de clases en html

Hola.

Estoy actualizando una web en html con php y mysql donde intento dejar que el usuario por si mismo cree su propio horario de clases semanal.

El horario sería por ejemplo algo así:

Hora - Lunes - Martes
----------------------------
19:00 - Bachata -
20:00 - Salsa - Bailes Latinos
21:00 - Iniciación - Bachata

He hecho varios intentos y la verdad no me aclaro y creo que tampoco logro el resultado final. Por ejemplo he probado haciendo varias tablas:

Horario
---------
id_horario - 1
horario - Invierno 2014
columna1 - Hora
columna2 - Lunes
columna3 - Martes

Entonces de ahí imprimo horario, columna1, 2 y 3 y ya tengo el encabezado de la tabla, sería algo así:

Código PHP:
Ver original
  1. $consulta_horarios = "select * from horarios where id_horario=1";
  2.             $resultado_horarios=mysql_query($consulta_horarios);
  3.             while($fila=mysql_fetch_array($resultado_horarios))
  4.             {
  5.                 echo '<h3>'.$fila["horario"].'</h3>';
  6.                 echo '<table summary="Horarios">
  7.                         <thead>
  8.                         <tr>
  9.                         <td height="60"><strong>'.$fila["columna1"].'</strong></td>
  10.                         <th height="60" id="l" scope="col">'.$fila["columna2"].'</th>
  11.                         <th height="60" id="mj" scope="col">'.$fila["columna3"].'</th>
  12.                       </tr>    
  13.                     </thead>';

Hasta aquí me iría perfectamente. Ahora quiero introducir las diferentes clases y horas y para ello he creado por ejemplo dos tablas:

Clases
--------
id_clase - 1
clase - Bachata

Horas
--------
id_hora - 1
hora - 19:00
clase_dia1 - Lunes
clase_dia2 - Martes
id_horario - 1

Y a la hora de imprimir hago esto:

Código PHP:
Ver original
  1. $consulta_horas = "select x_clases.clase, x_horas.hora, x_horas.clase_dia1,x_horas.clase_dia2 from x_clases, x_horas
  2.                 where
  3.                 x_clases.id_clase=x_horas.clase_dia1;";
  4.             $resultado_horas=mysql_query($consulta_horas);
  5.             while($fila=mysql_fetch_array($resultado_horas))           
  6.             {  
  7.                 echo '<tr>';               
  8.                 echo '<td>'.$fila["hora"].'</td>';             
  9.                 echo '<td>'.$fila["clase_dia1"].'</td>';               
  10.                 echo '<td>'.$fila["clase_dia2"].'</td>';
  11.                 echo '</tr>';
  12.             }

Y al final siempre me sale esto:

Hora --- Lunes - Martes
19:00 --- 1 ------ 0
20:00 --- 2 ------ 3

He probado ya otras muchas opciones y no lo consigo, primero no recuerdo como cambiar el 1 por el nombre de la clase (bachata, salsa etc etc) y a la vez hacer que se carguen todas las horas ya que en este caso tengo como ejemplo 3 horas insertadas y no se imprime la tercera.

¿Qué puedo arreglar? ¿Hay otra manera de hacerlo mejor?¿Podría hacerlo con menos tablas o al contrario tengo que incluir alguna que otra tabla más?

Saludos.

PD: No sabía sí sería mejor hacer esta consulta en el foro de php o en el foro mysql.