Foros del Web » Programando para Internet » PHP »

Arreglar tabla horario; mostrar asignaturas en filas según día

Estas en el tema de Arreglar tabla horario; mostrar asignaturas en filas según día en el foro de PHP en Foros del Web. Espero esta vez me den la ayudita mi confusión esta en que no he podido arreglar la tabla horario que muestre los días con sus ...
  #1 (permalink)  
Antiguo 15/07/2012, 13:39
Avatar de yebert  
Fecha de Ingreso: marzo-2012
Ubicación: Mérida
Mensajes: 46
Antigüedad: 12 años, 2 meses
Puntos: 3
Pregunta Arreglar tabla horario; mostrar asignaturas en filas según día

Espero esta vez me den la ayudita mi confusión esta en que no he podido arreglar la tabla horario que muestre los días con sus respectivas asignaturas y que sean presentadas ordenadamente de la siguiente forma como este script html.

Código HTML:
Ver original
  1. <table width="95%" border="1" align="center" cellpadding="2" cellspacing="0">
  2.               <tr>
  3.                 <td width="184" bgcolor="#ECE9D8"><div align="center">LUNES</div></td>
  4.                 <td width="180" bgcolor="#ECE9D8"><div align="center">MARTES</div></td>
  5.                 <td width="185" bgcolor="#ECE9D8"><div align="center">MIERCOLES</div></td>
  6.                 <td width="154" bgcolor="#ECE9D8"><div align="center">JUEVES</div></td>
  7.                 <td width="175" bgcolor="#ECE9D8"><div align="center">VIERNES</div></td>
  8.               </tr>
  9.               <tr>
  10.                 <td bgcolor="#E3E9F1"><div align="center">
  11.                   <p>7:00:00 - 10:00:00
  12.                   <p><strong>ASIGNATURA</strong></p>
  13.                   <p> GRADO - SECC - AULAB </p>
  14.                 </div></td>
  15.                 <td bgcolor="#E3E9F1"><div align="center">
  16.                     <p>7:00:00 - 08:20:00 </p>
  17.                   <p><strong>ASIGNATURA</strong></p>
  18.                   <p> GRADO - SECC - AULA6 </p>
  19.                 </div></td>
  20.                 <td bgcolor="#E3E9F1"><div align="center">
  21.                     <p>7:00:00 - 09:00:00 </p>
  22.                   <p><strong>ASIGNATURA</strong></p>
  23.                   <p> GRADO - SECC - AULA4 </p>
  24.                 </div></td>
  25.                 <td bgcolor="#E3E9F1"><div align="center">LIBRE</div></td>
  26.                 <td bgcolor="#E3E9F1"><div align="center">
  27.                     <p>7:00:00 - 10:00:00 </p>
  28.                   <p><strong>ASIGNATURA</strong></p>
  29.                   <p> GRADO - SECC - AULA7 </p>
  30.                 </div></td>
  31.               </tr>
  32.               <tr>
  33.                 <td bgcolor="#E3E9F1"><div align="center">
  34.                   <p>10:40:00 - 12:40:00 </p>
  35.                   <p><strong>ASIGNATURA</strong></p>
  36.                   <p> GRADO - SECC - AULA2 </p>
  37.                 </div></td>
  38.                 <td bgcolor="#E3E9F1"><div align="center">
  39.                     <p>10:00:00 - 11:20:00 </p>
  40.                   <p><strong>ASIGNATURA</strong></p>
  41.                   <p> GRADO - SECC - AULAB </p>
  42.                 </div></td>
  43.                 <td bgcolor="#E3E9F1"><div align="center">
  44.                     <p>13:00:00 - 14:20:00 </p>
  45.                   <p><strong>ASIGNATURA</strong></p>
  46.                   <p> GRADO - SECC - AULA9 </p>
  47.                 </div></td>
  48.                 <td bgcolor="#E3E9F1"><div align="center">LIBRE</div></td>
  49.                 <td bgcolor="#E3E9F1"><div align="center">
  50.                     <p>10:40:00 - 12:40:00 </p>
  51.                   <p><strong>ASIGNATURA</strong></p>
  52.                   <p> GRADO - SECC - AULA5 </p>
  53.                 </div></td>
  54.               </tr>
  55.               <tr>
  56.                 <td bgcolor="#E3E9F1"><div align="center">
  57.                   <p>13:40:00 - 15:00:00 </p>
  58.                   <p><strong>ASIGNATURA</strong></p>
  59.                   <p> GRADO - SECC - AULA1 </p>
  60.                 </div></td>
  61.                 <td bgcolor="#E3E9F1"><div align="center">LIBRE</div></td>
  62.                 <td bgcolor="#E3E9F1"><div align="center">
  63.                     <p>16:40:00 - 18:00:00 </p>
  64.                   <p><strong>ASIGNATURA</strong></p>
  65.                   <p> GRADO - SECC - AULAB </p>
  66.                 </div></td>
  67.                 <td bgcolor="#E3E9F1"><div align="center">LIBRE</div></td>
  68.                 <td bgcolor="#E3E9F1"><div align="center">LIBRE</div></td>
  69.               </tr>

Acá abajo dejo el script php q estoy tratando de arreglar con array() y bucle pero se me presenta de forma desordenada.....AYUDA POR FAVOR....

Código PHP:
Ver original
  1. <?php      
  2. $inf = array(); //declaramos un arreglo donde guardamos los registros encontrados
  3. while($d = mysql_fetch_array($dat)) {
  4.  $inf[] = $d; //Buscamos los datos almacenados y los asignados al arreglo para poderlos manipular a consideración nuestra
  5. }
  6. for ($i=1;$i<=5;$i++) {//con este for le damos el valor a las horas en una columna
  7.     echo "<table width='20%' border='1' align='center'cellpadding='2' cellspacing='0'>";
  8.     echo "<tr>";
  9.          if($i=='1'){echo "<td colspan='4' bgcolor='#ECE9D8'><div align='center'>LUNES</div></td>";}
  10.          if($i=='2'){echo "<td colspan='4' bgcolor='#ECE9D8'><div align='center'>MARTES</div></td>";}
  11.          if($i=='3'){echo "<td colspan='4' bgcolor='#ECE9D8'><div align='center'>MIERCOLES</div></td>";}
  12.          if($i=='4'){echo "<td colspan='4' bgcolor='#ECE9D8'><div align='center'>JUEVES</div></td>";}
  13.          if($i=='5'){echo "<td colspan='4' bgcolor='#ECE9D8'><div align='center'>VIERNES</div></td>";}    
  14.        
  15.     for ($j=0;$j<=50;$j++) {//con este recuperamos la informacion del arreglo y la llamamos el registro que nos interesa
  16.        
  17.        if ($inf[$j]['dia'] == $i)  
  18.          {//mostramos el valor
  19.        echo "</tr>";
  20.        echo "<tr>";
  21.  echo "<td width='100' bgcolor='#E3E9F1'><div align='center'>";
  22.  
  23. if($inf[$j]['h_entrada']==''){ echo "LIBRE";}else {echo $inf[$j]['h_entrada']." - ";}
  24. if($inf[$j]['h_salida']==''){ echo "LIBRE";}else {echo $inf[$j]['h_salida']."<br>";}
  25. if($inf[$j]['materia']==''){ echo "LIBRE";}else {echo $inf[$j]['materia']."<br>";}
  26. if($inf[$j]['grado']==''){ echo "LIBRE";}else {echo $inf[$j]['grado']." - ";}
  27. if($inf[$j]['seccion']==''){ echo "LIBRE";}else {echo $inf[$j]['seccion']." - ";}
  28. if($inf[$j]['aula']==''){ echo "LIBRE";}else { echo $inf[$j]['aula']."";}echo "</div></td>";
  29.          }
  30.     } echo "</tr>";
  31.    echo "</table>";
  32. }  
  33. ?>

Agradezco la ayuda
__________________
Yebert
  #2 (permalink)  
Antiguo 15/07/2012, 18:01
 
Fecha de Ingreso: diciembre-2004
Mensajes: 21
Antigüedad: 19 años, 4 meses
Puntos: 3
Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Hola yebert.
Si lo que pretendes es que la celda de la tabla con los horarios quede ordenada asi:
LUNES
h_entrada -
h_salida
materia
grado -
seccion -
aula
podrias incluir unas etiqueta
Código HTML:
Ver original
  1. <ul><li> h_entrada -</li>
  2.     <li>h_salida</li>
  3.    <li> materia</li>
  4.     <li>grado -</li>
  5.     <li>seccion -</li>
  6.     <li>aula</li></ul>
Si las viñetas no te gustan podras quitarlas aplicando estilos.
Ej:
Código HTML:
Ver original
  1. <li style="list-style-type:none">

Mira en este pagina otros estilos:
http://xhtml.com/en/css/reference/list-style-type/

Para que puedas aplicar esto en el nido con el codigo php, remplazaria la linea 21
Código PHP:
Ver original
  1. echo "<td width='100' bgcolor='#E3E9F1'><div align='center'>";
por esta otra
Código PHP:
Ver original
  1. echo "<td width='100' bgcolor='#E3E9F1'><ul>";
y la linea 23 y las otras deberian quedar asi.
Código PHP:
Ver original
  1. if($inf[$j]['h_entrada']==''){ echo "<li>LIBRE</li>";}else {echo "<li>".$inf[$j]['h_entrada']." - </li>";}

No olvidar cerrar el </ul> donde estaba el cierre del </div>

Espeo haber sido util

Última edición por racba; 15/07/2012 a las 18:07
  #3 (permalink)  
Antiguo 15/07/2012, 18:53
Avatar de yebert  
Fecha de Ingreso: marzo-2012
Ubicación: Mérida
Mensajes: 46
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Gracias por responder racba no tienes idea llevo todo el día tratando de arreglar la presentación del horario. Je.je.je soy novato en esto de php.
Bueno yo entiendo lo q me dices y voy a utilizar el estilo q me recomiendas pero lo que quisiera lograr es ordenar la tabla que en cada columna se visualice el dia y en la fila respectivamente muestre asignatura, grado; entre otros.
ejemplo..


---------------------------------------------------------------------------------------
LO QUE HASTA EL MOMENTO HE LOGRADO ES ESTO

http://liceo.x10.mx/pruebas/Ordenar%20horario%20docente1.html

----------------------------------------------------------------------------------------

En este vinculo dejo el modelo html como quisiera hacerlo..

http://liceo.x10.mx/pruebas/Ordenar%20horario%20docente.html

Agradezco q me des la mano al respecto
__________________
Yebert

Última edición por yebert; 16/07/2012 a las 04:56
  #4 (permalink)  
Antiguo 16/07/2012, 15:04
 
Fecha de Ingreso: diciembre-2004
Mensajes: 21
Antigüedad: 19 años, 4 meses
Puntos: 3
Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Hola yebert:
Pense que la tabla estaba dispuesta de arriba hacia abajo porque el ancho es de 20%:
Código PHP:
Ver original
  1. echo "<table width='20%' border='1' align='center'cellpadding='2' cellspacing='0'>";
Entonces yo diria que el ancho de la tabla deberia ser por ejemplo:
Código PHP:
Ver original
  1. echo "<table width='800px' border='1' align='center'cellpadding='2' cellspacing='0'>";
Luego tenes que, la estructura de la tabla dentro del ciclo 'for' te genere una nueva tabla por cada valor de $i.
Entonces habria que sacar la mayor cantidad de <tags> posibles de los ciclos 'for'
Código PHP:
Ver original
  1. echo "<table width='800px' border='1' align='center'cellpadding='2' cellspacing='0'>";
  2.        echo "<tr width='780px'>";
  3.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>LUNES</div></td>";
  4.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>MARTES</div></td>";
  5.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>MIERCOLES</div></td>";
  6.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>JUEVES</div></td>";
  7.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>VIERNES</div></td>";
  8.        echo "</tr>";
  9.        echo "<tr width='780px' border='1'cellpadding='1' cellspacing='1'>";
Como veras he sacado toda la fila con los nombres de dias que no es contenido dinamico y tambien he puesto un <tr> de apertura para una nueva fila.
He tratado de darle un ancho fijo a cada celda para que sea mas ordenado, quitando los
Código HTML:
Ver original
  1. colspan='4'
que no tienen sentido.
Al final de los ciclos 'for' cierro la fila y la tabla para que no entren en el rulo
Código PHP:
Ver original
  1. echo "</tr>";
  2.    echo "</table>";
Hasta aqui todo al pelo quedaria mas o menos asi:
Código PHP:
Ver original
  1. echo "<table width='800px' border='1' align='center'cellpadding='2' cellspacing='0'>";
  2.        echo "<tr width='780px'>";
  3.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>LUNES</div></td>";
  4.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>MARTES</div></td>";
  5.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>MIERCOLES</div></td>";
  6.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>JUEVES</div></td>";
  7.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>VIERNES</div></td>";
  8.        echo "</tr>";
  9.        echo "<tr width='780px' border='1'cellpadding='1' cellspacing='1'>";
  10. for ($i=1;$i<=5;$i++) {//con este for le damos el valor a las horas en una columna      
  11.     for ($j=0;$j<=4;$j++) {//con este recuperamos la informacion del arreglo y la llamamos el registro que nos interesa
  12.        
  13.        if ($inf[$j]['dia'] == $i)  
  14.          {//mostramos el valor
  15. echo "<td style='width:150px; background:#E3E9F1'>";
  16. if($inf[$j]['h_entrada']==''){ echo "LIBRE";}else {echo $inf[$j]['h_entrada']." - ";}
  17. if($inf[$j]['h_salida']==''){ echo "LIBRE";}else {echo $inf[$j]['h_salida']."<br>";}
  18. if($inf[$j]['materia']==''){ echo "LIBRE";}else {echo $inf[$j]['materia']."<br>";}
  19. if($inf[$j]['grado']==''){ echo "LIBRE";}else {echo $inf[$j]['grado']." - ";}
  20. if($inf[$j]['seccion']==''){ echo "LIBRE";}else {echo $inf[$j]['seccion']." - ";}
  21. if($inf[$j]['aula']==''){ echo "LIBRE";}else { echo $inf[$j]['aula']."";}
  22. echo "</td>";
  23.          }
  24.     }
  25. }  echo "</tr>";
  26.    echo "</table>";
El problema surge cuando se completa la primera fila en la columna del dia viernes y debe generarce una nueva fila empezando por la columna del dia Lunes
Si a $j lo establecemos en <= 4
Código PHP:
Ver original
  1. for ($j=0;$j<=4;$j++)
te completa la primera fila hasta el dia viernes.
Pero si establecemos $j en <= 5 nos agrega una columna fuera de la tabla en la misma fila y asi con todo valor de $j mayor que 4.
Para evitar esto se me acurrio hacer bloques de codigo donde el valor de $j este en un rango que valla de 5 en 5.
Por ejemplo:
Primer bloque:
Código PHP:
Ver original
  1. for ($i=1;$i<=5;$i++) {//con este for le damos el valor a las horas en una columna      
  2.     for ($j=0;$j<=4;$j++) {//con este recuperamos la informacion del arreglo y la llamamos el registro que nos interesa
  3.        
  4.        if ($inf[$j]['dia'] == $i)  
  5.          {//mostramos el valor
  6.        //echo "</tr>";
  7. echo "<td style='width:140px; background:#E3E9F1'>";
  8. if($inf[$j]['h_entrada']==''){ echo "LIBRE";}else {echo $inf[$j]['h_entrada']." - ";}
  9. if($inf[$j]['h_salida']==''){ echo "LIBRE";}else {echo $inf[$j]['h_salida']."<br>";}
  10. if($inf[$j]['materia']==''){ echo "LIBRE";}else {echo $inf[$j]['materia']."<br>";}
  11. if($inf[$j]['grado']==''){ echo "LIBRE";}else {echo $inf[$j]['grado']." - ";}
  12. if($inf[$j]['seccion']==''){ echo "LIBRE";}else {echo $inf[$j]['seccion']." - ";}
  13. if($inf[$j]['aula']==''){ echo "LIBRE";}else { echo $inf[$j]['aula']."";}
  14. echo "</td>";
  15.          }        
  16.     }    
  17. }
Agregamos un cierre de fila y un apertura de fila:
Código PHP:
Ver original
  1. echo "</tr>";
  2.   echo "<tr width='780px' border='1'cellpadding='1' cellspacing='1'>";
Segundo bloque:
Código PHP:
Ver original
  1. for ($i=1;$i<=5;$i++) {//con este for le damos el valor a las horas en una columna      
  2.     for ($j=5;$j<=9;$j++) {//con este recuperamos la informacion del arreglo y la llamamos el registro que nos interesa
  3.        
  4.        if ($inf[$j]['dia'] == $i)  
  5.          {//mostramos el valor
  6.        //echo "</tr>";
  7. echo "<td style='width:140px; background:#E3E9F1'>";
  8. if($inf[$j]['h_entrada']==''){ echo "LIBRE";}else {echo $inf[$j]['h_entrada']." - ";}
  9. if($inf[$j]['h_salida']==''){ echo "LIBRE";}else {echo $inf[$j]['h_salida']."<br>";}
  10. if($inf[$j]['materia']==''){ echo "LIBRE";}else {echo $inf[$j]['materia']."<br>";}
  11. if($inf[$j]['grado']==''){ echo "LIBRE";}else {echo $inf[$j]['grado']." - ";}
  12. if($inf[$j]['seccion']==''){ echo "LIBRE";}else {echo $inf[$j]['seccion']." - ";}
  13. if($inf[$j]['aula']==''){ echo "LIBRE";}else { echo $inf[$j]['aula']."";}
  14. echo "</td>";
  15.          }  
  16.     }    
  17. }
Donde notaras que el valor de $j en el ciclo for esta entre 5 y 9
Podria mejorar esto con una funcion que nos genere cada bloque con su correspondiente rango de $j asi no tener que escribir tanto.
Me gustaria saber si con los valores de tu base de datos te muestra los datos correctamente.
Para probar el codigo cree un array simulando los datos a mostrar, lo cual puede que en la practica real no funcione. Vos me diras si es asi.
Como comentario final estuvo interesante el problema de generar una tabla con datos de base de datos.
Espero que funcione y haber podido se util.

Última edición por racba; 16/07/2012 a las 15:54
  #5 (permalink)  
Antiguo 16/07/2012, 16:06
Avatar de yebert  
Fecha de Ingreso: marzo-2012
Ubicación: Mérida
Mensajes: 46
Antigüedad: 12 años, 2 meses
Puntos: 3
De acuerdo Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Excelente explicación racba Muchas gracias. Voy a ver como me va y te escribo luego.
__________________
Yebert
  #6 (permalink)  
Antiguo 16/07/2012, 16:17
 
Fecha de Ingreso: diciembre-2004
Mensajes: 21
Antigüedad: 19 años, 4 meses
Puntos: 3
Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Olvide poner el codigo completo, asi que aqui esta para que puedas probarlo:
Código PHP:
Ver original
  1. <?php      
  2. /*$inf = array(); //declaramos un arreglo donde guardamos los registros encontrados
  3. while($d = mysql_fetch_array($dat)) {
  4.  $inf[] = $d; //Buscamos los datos almacenados y los asignados al arreglo para poderlos manipular a consideración nuestra
  5. }*/
  6. $lunes = array('dia'=> 1, 'h_entrada'=>'07:00:00', 'h_salida'=>'10:00:00','materia'=>'QUIMICA','grado'=>'1','seccion'=> '1','aula'=> 'A');
  7. $martes =array('dia'=> 2,'h_entrada'=>'08:00:00', 'h_salida'=>'10:00:00','materia'=>'FISICA','grado'=>'1','seccion'=> '2','aula'=> 'B');
  8. $miercoles = array('dia'=> 3,'h_entrada'=>'09:00:00', 'h_salida'=>'12:00:00','materia'=>'','grado'=>'2','seccion'=> '1','aula'=> 'C');
  9. $jueves = array('dia'=> 4,'h_entrada'=>'10:00:00', 'h_salida'=>'13:00:00','materia'=>'LENGUA','grado'=>'2','seccion'=> '2','aula'=> 'D');
  10. $viernes = array('dia'=> 5,'h_entrada'=>'01:00:00', 'h_salida'=>'14:00:00','materia'=>'GEOGRAFIA','grado'=>'3','seccion'=> '1','aula'=> 'E');
  11.  
  12. $dia = array(1 => ($lunes), 2 => ($martes), 3 => ($miercoles), 4 => $jueves, 5 => $viernes);
  13. $inf[0] = $dia["1"];
  14. $inf[1] = $dia["2"];
  15. $inf[2] = $dia["3"];
  16. $inf[3] = $dia["4"];
  17. $inf[4] = $dia["5"];
  18. $inf[5] = $dia["1"];
  19. $inf[6] = $dia["2"];
  20. $inf[7] = $dia["3"];
  21. $inf[8] = $dia["4"];
  22. $inf[9] = $dia["5"];
  23.  
  24.     echo "<table width='800px' border='1' align='center'cellpadding='2' cellspacing='0'>";
  25.        echo "<tr width='780px'>";
  26.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>LUNES</div></td>";
  27.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>MARTES</div></td>";
  28.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>MIERCOLES</div></td>";
  29.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>JUEVES</div></td>";
  30.          echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>VIERNES</div></td>";
  31.        echo "</tr>";
  32.        echo "<tr width='780px' border='1'cellpadding='1' cellspacing='1'>";
  33.        
  34. //**********PRIMERA FILA DE DATOS *********
  35. for ($i=1;$i<=5;$i++) {//con este for le damos el valor a las horas en una columna      
  36.     for ($j=0;$j<=4;$j++) {//con este recuperamos la informacion del arreglo y la llamamos el registro que nos interesa
  37.        
  38.        if ($inf[$j]['dia'] == $i)  
  39.          {//mostramos el valor
  40.        //echo "</tr>";
  41. echo "<td style='width:140px; background:#E3E9F1'>";
  42. if($inf[$j]['h_entrada']==''){ echo "LIBRE";}else {echo $inf[$j]['h_entrada']." - ";}
  43. if($inf[$j]['h_salida']==''){ echo "LIBRE";}else {echo $inf[$j]['h_salida']."<br>";}
  44. if($inf[$j]['materia']==''){ echo "LIBRE";}else {echo $inf[$j]['materia']."<br>";}
  45. if($inf[$j]['grado']==''){ echo "LIBRE";}else {echo $inf[$j]['grado']." - ";}
  46. if($inf[$j]['seccion']==''){ echo "LIBRE";}else {echo $inf[$j]['seccion']." - ";}
  47. if($inf[$j]['aula']==''){ echo "LIBRE";}else { echo $inf[$j]['aula']."";}
  48. echo "</td>";
  49.          }        
  50.     }    
  51. }
  52. //*************FIN PRIMERA FILA *****************
  53.  
  54. //*********** AGREGAMOS UN CIERE DE TAG Y UN INICIO**********
  55. echo "</tr>";
  56.          echo "<tr width='780px' border='1'cellpadding='1' cellspacing='1'>";
  57.          
  58.  //**********SEGUNDA FILA DE DATOS *********
  59.        
  60. for ($i=1;$i<=5;$i++) {//con este for le damos el valor a las horas en una columna      
  61.     for ($j=5;$j<=9;$j++) {//con este recuperamos la informacion del arreglo y la llamamos el registro que nos interesa
  62.        
  63.        if ($inf[$j]['dia'] == $i)  
  64.          {//mostramos el valor
  65.        //echo "</tr>";
  66. echo "<td style='width:140px; background:#E3E9F1'>";
  67. if($inf[$j]['h_entrada']==''){ echo "LIBRE";}else {echo $inf[$j]['h_entrada']." - ";}
  68. if($inf[$j]['h_salida']==''){ echo "LIBRE";}else {echo $inf[$j]['h_salida']."<br>";}
  69. if($inf[$j]['materia']==''){ echo "LIBRE";}else {echo $inf[$j]['materia']."<br>";}
  70. if($inf[$j]['grado']==''){ echo "LIBRE";}else {echo $inf[$j]['grado']." - ";}
  71. if($inf[$j]['seccion']==''){ echo "LIBRE";}else {echo $inf[$j]['seccion']." - ";}
  72. if($inf[$j]['aula']==''){ echo "LIBRE";}else { echo $inf[$j]['aula']."";}
  73. echo "</td>";
  74.          }  
  75.     }    
  76. }
  77. //*************FIN SEGUNDA FILA *****************
  78.  
  79.  echo "</tr>";
  80.    echo "</table>";
  81.  
  82. ?>
  #7 (permalink)  
Antiguo 16/07/2012, 17:06
Avatar de yebert  
Fecha de Ingreso: marzo-2012
Ubicación: Mérida
Mensajes: 46
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Je.je.je no habia actualizado la pagina me habias enviado el codigo completo disculpa voy a probar y te inf
__________________
Yebert
  #8 (permalink)  
Antiguo 16/07/2012, 17:32
Avatar de yebert  
Fecha de Ingreso: marzo-2012
Ubicación: Mérida
Mensajes: 46
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Bien racba ya esta agarrando forma la tabla le agradezco tu ayuda..

Así llevo el php que muestra la tabla para hagas el favor y des un vistazo, la tabla ya se genera bien con sus columnas y filas pero solo muestra dos filas cuando tiene que mostrar 4 filas según los datos guardados en la tabla de la BD


Código PHP:
Ver original
  1. <?php
  2. //consulta de datos...............cedula_personal=$ced
  3. $sql= "SELECT * FROM horario WHERE cedula_personal=$ced ORDER BY h_entrada ASC" or die("Error al Filtrar la informacion");
  4. $dat = mysql_query($sql);
  5. $inf = array(); //declaramos un arreglo donde guardamos los registros encontrados
  6. echo "<table width='800px' border='1' align='center'cellpadding='2' cellspacing='0'>";
  7. echo "<tr width='780px'>";
  8. echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>LUNES</div></td>";
  9. echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>MARTES</div></td>";
  10. echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>MIERCOLES</div></td>";
  11. echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>JUEVES</div></td>";
  12. echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>VIERNES</div></td>";
  13. echo "</tr>";
  14. echo "<tr width='780px' border='1'cellpadding='1' cellspacing='1'>";
  15. while($d = mysql_fetch_array($dat)) {
  16. $inf[] = $d; //Buscamos los datos almacenados y los asignados al arreglo para poderlos manipular a consideración nuestra
  17. }
  18. for ($i=1;$i<=5;$i++) {//con este for le damos el valor a las horas en una columna
  19. for ($j=0;$j<=4;$j++) {//con este recuperamos la informacion del arreglo y la llamamos el registro que nos interesa
  20.  
  21. if ($inf[$j]['dia'] == $i)
  22. {//mostramos el valor
  23. //echo "</tr>";
  24. echo "<td style='width:140px; background:#E3E9F1'>";
  25. if($inf[$j]['h_entrada']==''){ echo "LIBRE";}else {echo $inf[$j]['h_entrada']." - ";}
  26. if($inf[$j]['h_salida']==''){ echo "LIBRE";}else {echo $inf[$j]['h_salida']."<br>";}
  27. if($inf[$j]['materia']==''){ echo "LIBRE";}else {echo $inf[$j]['materia']."<br>";}
  28. if($inf[$j]['grado']==''){ echo "LIBRE";}else {echo $inf[$j]['grado']." - ";}
  29. if($inf[$j]['seccion']==''){ echo "LIBRE";}else {echo $inf[$j]['seccion']." - ";}
  30. if($inf[$j]['aula']==''){ echo "LIBRE";}else { echo $inf[$j]['aula']."";}
  31. echo "</td>";
  32. }
  33. }
  34. }
  35. echo "</tr>";
  36. echo "<tr width='780px' border='1'cellpadding='1' cellspacing='1'>";
  37. while($d = mysql_fetch_array($dat)) {
  38. $inf[] = $d; //Buscamos los datos almacenados y los asignados al arreglo para poderlos manipular a consideración nuestra
  39. }
  40. for ($i=1;$i<=5;$i++) {//con este for le damos el valor a las horas en una columna
  41. for ($j=5;$j<=9;$j++) {//con este recuperamos la informacion del arreglo y la llamamos el registro que nos interesa
  42.  
  43. if ($inf[$j]['dia'] == $i)
  44. {//mostramos el valor
  45. //echo "</tr>";
  46. echo "<td style='width:140px; background:#E3E9F1'>";
  47. if($inf[$j]['h_entrada']==''){ echo "LIBRE";}else {echo $inf[$j]['h_entrada']." - ";}
  48. if($inf[$j]['h_salida']==''){ echo "LIBRE";}else {echo $inf[$j]['h_salida']."<br>";}
  49. if($inf[$j]['materia']==''){ echo "LIBRE";}else {echo $inf[$j]['materia']."<br>";}
  50. if($inf[$j]['grado']==''){ echo "LIBRE";}else {echo $inf[$j]['grado']." - ";}
  51. if($inf[$j]['seccion']==''){ echo "LIBRE";}else {echo $inf[$j]['seccion']." - ";}
  52. if($inf[$j]['aula']==''){ echo "LIBRE";}else { echo $inf[$j]['aula']."";}
  53. echo "</td>";
  54. }
  55. }
  56. }echo "</tr>";
  57. echo "</table>";
  58. ?>
-------------------------------------------------------------------------------------------
Hasta el momento la tabla se ve asi como puedes ver en este vinculo:

http://liceo.x10.mx/pruebas/Ordenar%20horario%20docente3.html
--------------------------------------------------------------------------------------

Esta es la estructura de la tabla. Para que tengas una idea mas clara de los datos..

Código PHP:
Ver original
  1. CREATE TABLE IF NOT EXISTS `horario` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `cedula_personal` int(8) NOT NULL,
  4. `grado` varchar(10) NOT NULL,
  5. `seccion` int(2) NOT NULL,
  6. `aula` varchar(20) NOT NULL,
  7. `materia` varchar(60) NOT NULL,
  8. `dia` int(1) NOT NULL,
  9. `h_entrada` time NOT NULL,
  10. `h_salida` time NOT NULL,
  11. `f_creado` date NOT NULL,
  12. PRIMARY KEY (`id`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;
  14.  
  15. --
  16. -- Volcar la base de datos para la tabla `horario`
  17. --
  18.  
  19. INSERT INTO `horario` (`id`, `cedula_personal`, `grado`, `seccion`, `aula`, `materia`, `dia`, `h_entrada`, `h_salida`, `f_creado`) VALUES
  20. (1, 12345678, '1', 1, 'AULA 01', 'Informatica', 1, '07:00:00', '10:00:00', '2012-07-13'),
  21. (2, 12345678, '2', 3, 'AULA 02', 'Educacion para la Salud', 1, '11:20:00', '12:40:00', '2012-07-13'),
  22. (3, 12345678, '2', 1, 'AULA 01', 'Dibujo tecnico', 1, '13:40:00', '15:00:00', '2012-07-13'),
  23. (4, 12345678, '1', 1, 'AULA 01', 'Dibujo tecnico', 2, '07:00:00', '10:00:00', '2012-07-13'),
  24. (5, 12345678, '2', 1, 'AULA 02', 'Informatica', 2, '10:00:00', '12:40:00', '2012-07-13'),
  25. (16, 12345678, '1', 3, 'AULA 01', 'Informatica', 3, '07:00:00', '10:00:00', '2012-07-16'),
  26. (17, 12345678, '2', 5, 'AULA 02', 'Educacion para la Salud', 3, '11:20:00', '12:40:00', '2012-07-16'),
  27. (14, 12345678, '2', 2, 'LAB.QUIMICA', 'Historia Universal', 2, '16:00:00', '18:00:00', '2012-07-15'),
  28. (18, 12345678, '1', 5, 'AULA 01', 'Informatica', 5, '07:00:00', '10:00:00', '2012-07-16'),
  29. (15, 12345678, '1', 2, 'LAB.QUIMICA', 'Matematicas', 2, '13:00:00', '14:20:00', '2012-07-16'),
  30. (19, 12345678, '2', 4, 'AULA 01', 'Informatica', 5, '10:00:00', '12:40:00', '2012-07-16');

De antemano muchas gracias por tu atención racba se que este materia le servirá a otras personas que deseen realizar algo similar.
__________________
Yebert
  #9 (permalink)  
Antiguo 16/07/2012, 17:41
Avatar de yebert  
Fecha de Ingreso: marzo-2012
Ubicación: Mérida
Mensajes: 46
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Ah se me olvido decirte que lo máximo por día son cuatro (4) clases que imparte el docente; en este caso se debe mostrar cuatro filas o tres (3) todo depende de las asignaciones de horas, pero debe estar condicionado para q muestre 4 máximo.
Disculpa el abuso racba otra cosa que no he podido es condicionar sino existe registro de algún día, que muestre echo "LIBRE"; en la columna, he probado de mil y una forma y no me muestra el mensaje..
__________________
Yebert

Última edición por yebert; 16/07/2012 a las 17:47
  #10 (permalink)  
Antiguo 16/07/2012, 19:01
 
Fecha de Ingreso: diciembre-2004
Mensajes: 21
Antigüedad: 19 años, 4 meses
Puntos: 3
Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Así llevo el php que muestra la tabla para hagas el favor y des un vistazo, la tabla ya se genera bien con sus columnas y filas pero solo muestra dos filas cuando tiene que mostrar 4 filas según los datos guardados en la tabla de la BD

Recorda que para que te genere una nueva fila debes agregarle el bloque de codigo donde los valores $j esten en un rango de 5 en 5.
Entonces para la tercra fila $j deberia estar en el rango de $j = 10; $j<=14
y para la cuarta fila $j debe estar en el rango de $j=15; $j<=19;

Ahora me pongo a ver la estructura de la bd.
Recorda que puedes agregarle formatos a las celdas de la tabla para que se vean mejor. Esto lo haces directamente sobre el codigo.

Respecto del condicional para que muestre 'LIBRE' sobre que campo de la bd se aplicaria??
  #11 (permalink)  
Antiguo 17/07/2012, 10:02
Avatar de yebert  
Fecha de Ingreso: marzo-2012
Ubicación: Mérida
Mensajes: 46
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Buen día racba, la tabla ya presenta las cuatro filas el detalle es; por ejemplo el día 4 "jueves" no esta registrado para esa persona en la tabla 'horario'; esa es la parte que no he podido condicionar, el campo día de la tabla; sino tiene registro que muestre LIBRE en esa columna.
He probado de varias formas y no muestra el mensaje y cuando lo hace aparece en todas las columnas de la siguiente manera:

Lunes- Martes-Miércoles-Jueves-Viernes
LIBRE LIBRE LIBRE LIBRE LIBRE
LIBRE LIBRE LIBRE LIBRE LIBRE
LIBRE LIBRE LIBRE LIBRE LIBRE
--------------------------------------------------------------------------
Así se ve la tabla hasta el momento.
http://liceo.x10.mx/pruebas/Ordenar%20horario%20docente4.html
--------------------------------------------------------------------------------------

Ya faltaria condicionar el campo dia, muchas gracias.
__________________
Yebert
  #12 (permalink)  
Antiguo 22/07/2012, 00:15
Avatar de yebert  
Fecha de Ingreso: marzo-2012
Ubicación: Mérida
Mensajes: 46
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Arreglar tabla horario; mostrar asignaturas en filas según día

Buenas, por favor alguien que me da la ayuda se los agradezco como hago para condicionar si el día no tiene registro alguno, muestre LIBRE.

He intendado con varias formas y nada aca les dejo el script.
Código PHP:
Ver original
  1. <?php
  2. //consulta de datos...............cedula_personal=$ced
  3. $sql= "SELECT * FROM horario WHERE cedula_personal=$ced ORDER BY h_entrada ASC" or die("Error al Filtrar la informacion");
  4. $dat = mysql_query($sql);
  5. $inf = array(); //declaramos un arreglo donde guardamos los registros encontrados
  6. echo "<table width='800px' border='1' align='center'cellpadding='2' cellspacing='0'>";
  7. echo "<tr width='780px'>";
  8. echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>LUNES</div></td>";
  9. echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>MARTES</div></td>";
  10. echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>MIERCOLES</div></td>";
  11. echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>JUEVES</div></td>";
  12. echo "<td width='150px' bgcolor='#ECE9D8'><div align='center'>VIERNES</div></td>";
  13. echo "</tr>";
  14. echo "<tr width='780px' border='1'cellpadding='1' cellspacing='1'>";
  15. while($d = mysql_fetch_array($dat)) {
  16. $inf[] = $d; //Buscamos los datos almacenados y los asignados al arreglo para poderlos manipular a consideración nuestra
  17. }
  18. for ($i=1;$i<=5;$i++) {//con este for le damos el valor a las horas en una columna
  19. for ($j=0;$j<=4;$j++) {//con este recuperamos la informacion del arreglo y la llamamos el registro que nos interesa
  20. *
  21. if ($inf[$j]['dia'] == $i)
  22. {//mostramos el valor
  23. //echo "</tr>";
  24. echo "<td style='width:140px; background:#E3E9F1'>";
  25. if($inf[$j]['h_entrada']==''){ echo "LIBRE";}else {echo $inf[$j]['h_entrada']." - ";}
  26. if($inf[$j]['h_salida']==''){ echo "LIBRE";}else {echo $inf[$j]['h_salida']."<br>";}
  27. if($inf[$j]['materia']==''){ echo "LIBRE";}else {echo $inf[$j]['materia']."<br>";}
  28. if($inf[$j]['grado']==''){ echo "LIBRE";}else {echo $inf[$j]['grado']." - ";}
  29. if($inf[$j]['seccion']==''){ echo "LIBRE";}else {echo $inf[$j]['seccion']." - ";}
  30. if($inf[$j]['aula']==''){ echo "LIBRE";}else { echo $inf[$j]['aula']."";}
  31. echo "</td>";
  32. }
  33. }
  34. }
  35. echo "</tr>";
  36. echo "<tr width='780px' border='1'cellpadding='1' cellspacing='1'>";
  37. while($d = mysql_fetch_array($dat)) {
  38. $inf[] = $d; //Buscamos los datos almacenados y los asignados al arreglo para poderlos manipular a consideración nuestra
  39. }
  40. for ($i=1;$i<=5;$i++) {//con este for le damos el valor a las horas en una columna
  41. for ($j=5;$j<=9;$j++) {//con este recuperamos la informacion del arreglo y la llamamos el registro que nos interesa
  42. *
  43. if ($inf[$j]['dia'] == $i)
  44. {//mostramos el valor
  45. //echo "</tr>";
  46. echo "<td style='width:140px; background:#E3E9F1'>";
  47. if($inf[$j]['h_entrada']==''){ echo "LIBRE";}else {echo $inf[$j]['h_entrada']." - ";}
  48. if($inf[$j]['h_salida']==''){ echo "LIBRE";}else {echo $inf[$j]['h_salida']."<br>";}
  49. if($inf[$j]['materia']==''){ echo "LIBRE";}else {echo $inf[$j]['materia']."<br>";}
  50. if($inf[$j]['grado']==''){ echo "LIBRE";}else {echo $inf[$j]['grado']." - ";}
  51. if($inf[$j]['seccion']==''){ echo "LIBRE";}else {echo $inf[$j]['seccion']." - ";}
  52. if($inf[$j]['aula']==''){ echo "LIBRE";}else { echo $inf[$j]['aula']."";}
  53. echo "</td>";
  54. }
  55. }
  56. }echo "</tr>";
  57. echo "</table>";
  58. ?>

--------------------------------------------------------------------------
Así se ve la tabla hasta el momento.
http://liceo.x10.mx/pruebas/Ordenar%...0docente4.html
--------------------------------------------------------------------------------------

Muchas gracias.
__________________
Yebert

Etiquetas: arreglar, filas, horario, html, mysql, registro, según, tabla
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 07:19.