Ver Mensaje Individual
  #18 (permalink)  
Antiguo 27/01/2014, 12:07
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
Respuesta: Preparando una tabla mysql para hacer un horario semanal de clases en html

Hola de nuevo.

Gracias de nuevo razierplus2, ahora entiendo como hacerlo de esta manera y sí me sale todo perfectamente, de todas formas me gustaría aprender y ver si soy capaz de hacerlo como intentaba al principio solo desde mysql, así que retomo el tema para seguir ahora con la otra opción.

Como decía anteriormente he probado varias opciones con varias tablas, incluso una de forma horizontal a la hora de imprimir donde creaba la tabla horas y directamente incluía el nombre de la clase y salía perfectamente:

horas
----------
id_hora
hora
clase_dia1
clase_dia2
id_horario

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


Luego volví a la opción primera donde creo todas las tablas posibles como días, horas, clases, horarios y usuarios pero claro a la hora de imprimirlo en una tabla sigo sin encontrar la manera así que volví al último ejemplo y me sigue saliendo esto:

x_horas
-----------
id_hora
hora
clase_dia1
clase_dia2
id_horario
id_usuario

x_clases
-----------
id_clases
clase

Código PHP:
Ver original
  1. $consulta_horas ="select x_horas.hora, x_horas.clase_dia1, x_horas.clase_dia2, x_clases.clase from x_clases,x_horas
  2. where
  3. x_horas.id_hora=x_clases.id_clase";
  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.             }

Hasta aquí me sigue imprimiendo los números de la tabla x_horas en la fila clase_dia1 y clase_dia2, solo haciendo la función del post anterior lograría sacarlo.

Ahora si le incluyo de prueba una de las las opciones de que la clase_dia1 sea igual al nombre de la clase en la tabla clase por ejemplo de esta manera si saldría, pero solo 1:
Código PHP:
Ver original
  1. $consulta_horas ="select x_horas.hora, x_horas.clase_dia1, x_horas.clase_dia2, x_clases.clase from x_clases,x_horas
  2. where
  3. x_horas.id_hora=x_clases.id_clase
  4. and
  5. x_horas.clase_dia1=x_clases.id_clase
  6. ";
  7. $resultado_horas=mysql_query($consulta_horas);
  8.             while($fila=mysql_fetch_array($resultado_horas))           
  9.             {                  
  10.                 echo '<tr>';               
  11.                 echo '<td>'.$fila["hora"].'</td>';                             
  12.                 echo '<td>'.$fila["clase"].'</td>';            
  13.                 //echo '<td>'.$fila["clase_dia1"].'</td>';
  14.                 echo '<td>'.$fila["clase_dia2"].'</td>';               
  15.                 echo '</tr>';              
  16.             }

Si intento cambiar también el número del segundo día por el nombre de la clase ahi es cuando no lo consigo de ninguna manera, ya que si le añado otra opción a la anterior consulta como por ejemplo and x_horas.clase_dia2=x_clases.id_clase o bien repite la clase o simplemente no aparecería ningún resultado. ¿que debo de cambiar en lo anterior tanto de la consulta como de la impresión de resultados?

Saludos.