Foros del Web » Programando para Internet » PHP »

Crear horario en PHP

Estas en el tema de Crear horario en PHP en el foro de PHP en Foros del Web. estoy creando un horario de clases en php, la verdad creo que lo tengo casi listo, con solo un detalle. les muestro solo la parte ...
  #1 (permalink)  
Antiguo 02/07/2010, 13:16
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 9 años, 5 meses
Puntos: 55
Crear horario en PHP

estoy creando un horario de clases en php, la verdad creo que lo tengo casi listo, con solo un detalle.

les muestro solo la parte de la tabla porque lo demas funciona bien, resulta que cada recuadro le voy a colocar un while (por el momento solo se lo tengo a uno de prueba).

uno en una pagina anterior coloca el codigo del profesor y al enviar te genera una consulta de cuantas materias da el profesor (por eso el while).

el problema radica en que si por ejemplo el profesor tiene 4 materias pasa el while 4 veces, y genera 4 cuadros, esto me descuadra el horario.

que sugerencia me dan, llevo dias buscando soluciones en la web y nada

les agradezco la ayuda

Código PHP:
<table width="746" border="1">
  <tr>
    <th width="180" scope="col">Hora</th>
    <th width="57" scope="col">Lunes</th>
    <th width="70" scope="col">Martes</th>
    <th width="94" scope="col">Miercoles</th>
    <th width="66" scope="col">Jueves</th>
    <th width="72" scope="col">Viernes</th>
    <th width="68" scope="col">Sabado</th>
    <th width="87" scope="col">Domingo</th>
  </tr>
  <tr>
  
    <th scope="row">7:30am - 8:10am </th>
    
    <? /////// HORARIO 101 ///////////////////////////////////////////////////////////////////////////////////////// ?>
    
     <? while($resultados101 mysql_fetch_array($resultado1)) { 
   
      
$rest101_1 substr($resultados101['hora1'], 02); 
    
$rest101_2 substr($resultados101['hora2'], 02); 
    
$rest101_3 substr($resultados101['hora3'], 02); 
    
$rest101_4 substr($resultados101['hora4'], 02); 
   
   
?>   
    
           <? if(ereg(10$rest101_1) && ereg(01$resultados101['dish1'])) { ?>
    <td><div align="center"><a href="inforalum2.php?codigo=<? echo $resultados101['cod_mat'?> ">
                                        <? echo $resultados101['cod_mat']." ".$resultados101['aula1']; ?></a></div></td>
      <? } elseif(ereg(10$rest101_2) && ereg(01$resultados101['dish2'])) { ?>
    <td><div align="center"><a href="inforalum2.php?codigo=<? echo $resultados101['cod_mat'?> ">
                                        <? echo $resultados101['cod_mat']." ".$resultados101['aula2']; ?></a></div></td>
      <? } elseif(ereg(10$rest101_3) && ereg(01$resultados101['dish3'])) { ?>
    <td><div align="center"><a href="inforalum2.php?codigo=<? echo $resultados101['cod_mat'?> ">
                                        <? echo $resultados101['cod_mat']." ".$resultados101['aula3']; ?></a></div></td>
      <? } elseif(ereg(10$rest101_4) && ereg(01$resultados101['dish4'])) { ?>
    <td><div align="center"><a href="inforalum2.php?codigo=<? echo $resultados101['cod_mat'?> ">
                                        <? echo $resultados101['cod_mat']." ".$resultados101['aula4']; ?></a></div></td>
    <? } else ?>  <td> <div> . </div> </td> <? ?> 
    
    
    
    
    <? /////// FIN DE HORARIO 101 ////////////////////////////////////////////////////////////////////////////////// ?>

    <td><div align="center">201</div></td>
    <td><div align="center">301</div></td>
    <td><div align="center">401</div></td>
    <td><div align="center">501</div></td>
    <td><div align="center">601</div></td>
    <td><div align="center">701</div></td>

  </tr>
  <tr>
    <th scope="row">8:10am - 8:50am </th>
    <td><div align="center">102</div></td>
    <td><div align="center">202</div></td>
    <td><div align="center">302</div></td>
    <td><div align="center">402</div></td>
    <td><div align="center">502</div></td>
    <td><div align="center">602</div></td>
    <td><div align="center">702</div></td>
  </tr>
  <tr>
    <th scope="row">8:50am - 9:30am </th>
    <td><div align="center">103</div></td>
    <td><div align="center">203</div></td>
    <td><div align="center">303</div></td>
    <td><div align="center">403</div></td>
    <td><div align="center">503</div></td>
    <td><div align="center">603</div></td>
    <td><div align="center">703</div></td>
  </tr>
  <tr>
    <th scope="row">9:30am - 10:10am </th>
    <td><div align="center">104</div></td>
    <td><div align="center">204</div></td>
    <td><div align="center">304</div></td>
    <td><div align="center">404</div></td>
    <td><div align="center">504</div></td>
    <td><div align="center">604</div></td>
    <td><div align="center">704</div></td>
  </tr>
  <tr>
    <th scope="row">10:10am - 10:50am </th>
    <td><div align="center">105</div></td>
    <td><div align="center">205</div></td>
    <td><div align="center">305</div></td>
    <td><div align="center">405</div></td>
    <td><div align="center">505</div></td>
    <td><div align="center">605</div></td>
    <td><div align="center">705</div></td>
  </tr>
  <tr>
    <th scope="row">10:50am - 11:30am</th>
    <td><div align="center">106</div></td>
    <td><div align="center">206</div></td>
    <td><div align="center">306</div></td>
    <td><div align="center">406</div></td>
    <td><div align="center">506</div></td>
    <td><div align="center">606</div></td>
    <td><div align="center">706</div></td>
  </tr>
  <tr>
    <th scope="row">11:30am - 12:10pm </th>
    <td><div align="center">107</div></td>
    <td><div align="center">207</div></td>
    <td><div align="center">307</div></td>
    <td><div align="center">407</div></td>
    <td><div align="center">507</div></td>
    <td><div align="center">607</div></td>
    <td><div align="center">707</div></td>
  </tr>
  <tr>
    <th scope="row">12:10pm - 1:20pm </th>
    <td><div align="center">108</div></td>
    <td><div align="center">208</div></td>
    <td><div align="center">308</div></td>
    <td><div align="center">408</div></td>
    <td><div align="center">508</div></td>
    <td><div align="center">608</div></td>
    <td><div align="center">708</div></td>
  </tr>
  <tr>
    <th scope="row">1:20pm - 2:00pm </th>
    <td><div align="center">109</div></td>
    <td><div align="center">209</div></td>
    <td><div align="center">309</div></td>
    <td><div align="center">409</div></td>
    <td><div align="center">509</div></td>
    <td><div align="center">609</div></td>
    <td><div align="center">709</div></td>
  </tr>
  <tr>
    <th scope="row">2:00pm - 2:40pm </th>
    <td><div align="center">110</div></td>
    <td><div align="center">210</div></td>
    <td><div align="center">310</div></td>
    <td><div align="center">410</div></td>
    <td><div align="center">510</div></td>
    <td><div align="center">610</div></td>
    <td><div align="center">710</div></td>
  </tr>
  <tr>
    <th scope="row">2:40pm - 3:20pm </th>
    <td><div align="center">111</div></td>
    <td><div align="center">211</div></td>
    <td><div align="center">311</div></td>
    <td><div align="center">411</div></td>
    <td><div align="center">511</div></td>
    <td><div align="center">611</div></td>
    <td><div align="center">711</div></td>
  </tr>
  <tr>
    <th scope="row">3:20pm - 4:00pm </th>
    <td><div align="center">112</div></td>
    <td><div align="center">212</div></td>
    <td><div align="center">312</div></td>
    <td><div align="center">412</div></td>
    <td><div align="center">512</div></td>
    <td><div align="center">612</div></td>
    <td><div align="center">712</div></td>
  </tr>
  <tr>
    <th scope="row">4:00pm - 4:40pm </th>
    <td><div align="center">113</div></td>
    <td><div align="center">213</div></td>
    <td><div align="center">313</div></td>
    <td><div align="center">413</div></td>
    <td><div align="center">513</div></td>
    <td><div align="center">613</div></td>
    <td><div align="center">713</div></td>
  </tr>
  <tr>
    <th scope="row">4:40pm - 5:20pm </th>
    <td><div align="center">114</div></td>
    <td><div align="center">214</div></td>
    <td><div align="center">314</div></td>
    <td><div align="center">414</div></td>
    <td><div align="center">514</div></td>
    <td><div align="center">614</div></td>
    <td><div align="center">714</div></td>
  </tr>
  <tr>
    <th scope="row">5:20pm - 6:00pm </th>
    <td><div align="center">115</div></td>
    <td><div align="center">215</div></td>
    <td><div align="center">315</div></td>
    <td><div align="center">415</div></td>
    <td><div align="center">515</div></td>
    <td><div align="center">615</div></td>
    <td><div align="center">715</div></td>
  </tr>
  <tr>
</table>
  #2 (permalink)  
Antiguo 02/07/2010, 17:09
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 14 años, 9 meses
Puntos: 25
Respuesta: Crear horario en PHP

Lo que deseas hacer es que cada 4 materias se cree otra tabla o que? por que puedes hacer eso con do while ó intentar poner todas las materias en una tabla separandolas simplemente con un <p></p>
__________________
Hospedaje Web al mejor costo!
  #3 (permalink)  
Antiguo 02/07/2010, 18:06
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 9 años, 5 meses
Puntos: 55
Respuesta: Crear horario en PHP

cada profesor tiene x cantidad de materias que da, al yo realizar la consulta el while hace que me coloque x cantidad de veces un recuadro con un punto (.) en caso de que no cumpla ninguna de las condiciones que se le pide.

aqui te dejo el ejemplo para que veas lo que digo
http://www.iutcojeda.co.cc/une/infordoc1.php?codigo=56

y aqui te dejo el mismo ejemplo pero cumpliendo las condiciones
http://www.iutcojeda.co.cc/une/infordoc1.php?codigo=37

como puedes ver la tabla de horario se desordena, eso es lo que no se como hacer para que si no cumple la condicion solo coloque un recuadro ya sea en blanco o con un punto
  #4 (permalink)  
Antiguo 02/07/2010, 18:13
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 14 años, 9 meses
Puntos: 25
Respuesta: Crear horario en PHP

El problema es que te condicionaste a por ejemplo, cumplir con la misma estructura de los dias.
Lo que puedes hacer es un contador para tratar de nivelar las columnas y tablas, como si fueses a paginar. Me explico? inclusive un buen ejemplo podría ser un paginador pero ADAPTADO!!!

Espero haberme explicado.
La verdad yo no soy tan fan de las tablas, prefiero usar divs por estas razones.
__________________
Hospedaje Web al mejor costo!
  #5 (permalink)  
Antiguo 02/07/2010, 18:43
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 9 años, 5 meses
Puntos: 55
Respuesta: Crear horario en PHP

bueno la verdad yo estoy abierto a cualquier forma, la idea es que funcione, lo he ido haciendo de esta forma porque estoy comenzando con php y no se mucho.

te agradezco si me puedes explicar esa otra forma que tu dices para ver como adaptarlo
  #6 (permalink)  
Antiguo 02/07/2010, 21:24
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 10 años
Puntos: 7
Respuesta: Crear horario en PHP

Pero en el ejemplo se bien. Si me explicas un poco más para ayudarte mi pana
  #7 (permalink)  
Antiguo 03/07/2010, 06:25
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 9 años, 5 meses
Puntos: 55
Respuesta: Crear horario en PHP

bueno te digo que ya solucione la parte de que me mostrara varias tablas modifique un poco el codigo y funciono

Código PHP:
    <td><div align="center">
    <? while($resultados201 mysql_fetch_array($resultado1)) { 
    
$rest201_1 substr($resultados201['hora1'], 02); 
    
$rest201_2 substr($resultados201['hora2'], 02); 
    
$rest201_3 substr($resultados201['hora3'], 02); 
    
$rest201_4 substr($resultados201['hora4'], 02); 
    
?>   
          <? if(ereg(20$rest201_1) && ereg(01$resultados201['dish1'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados201['cod_mat'?> ">
           <? echo $resultados201['cod_mat']." ".$resultados201['aula1']; ?></a>
    <? } elseif(ereg(20$rest201_2) && ereg(01$resultados201['dish2'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados201['cod_mat'?> ">
           <? echo $resultados201['cod_mat']." ".$resultados201['aula2']; ?></a>
    <? } elseif(ereg(20$rest201_3) && ereg(01$resultados201['dish3'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados201['cod_mat'?> ">
           <? echo $resultados201['cod_mat']." ".$resultados201['aula3']; ?></a>
    <? } elseif(ereg(20$rest201_4) && ereg(01$resultados201['dish4'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados201['cod_mat'?> ">
           <? echo $resultados201['cod_mat']." ".$resultados201['aula4']; ?></a>
    <? } } ?>  
    </div></td>
ahora tengo otro problema por cada cuadro yo estoy colocando un while asi como le muestro en este codigo, pero solo me funciona el primer while los que le siguen mas abajo no funcionan, a cada while se le han cambiado el nombre de la variable y por supuesto a cada codigo se le coloca el nombre que tiene el while que le toca
  #8 (permalink)  
Antiguo 03/07/2010, 11:08
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 14 años, 9 meses
Puntos: 25
Respuesta: Crear horario en PHP

no funciona en que sentido?

se repiten lso resultados?
no imprime nada?
__________________
Hospedaje Web al mejor costo!
  #9 (permalink)  
Antiguo 03/07/2010, 19:24
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 9 años, 5 meses
Puntos: 55
Respuesta: Crear horario en PHP

Cita:
Iniciado por urgido Ver Mensaje
no funciona en que sentido?

se repiten lso resultados?
no imprime nada?
me muestra solo el resultado del primer while, los demas while es como que no funcionaran, con todo y que cumplen las condiciones
  #10 (permalink)  
Antiguo 03/07/2010, 19:25
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 14 años, 9 meses
Puntos: 25
Respuesta: Crear horario en PHP

podrias postear el code?
__________________
Hospedaje Web al mejor costo!
  #11 (permalink)  
Antiguo 03/07/2010, 19:32
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 9 años, 5 meses
Puntos: 55
Respuesta: Crear horario en PHP

Código PHP:
 <table style="empty-cells: show;" width="746" border="1">
  <tr>
    <th width="134" scope="col">Hora</th>
    <th width="80" scope="col">Lunes</th>
    <th width="80" scope="col">Martes</th>
    <th width="80" scope="col">Miercoles</th>
    <th width="80" scope="col">Jueves</th>
    <th width="80" scope="col">Viernes</th>
    <th width="80" scope="col">Sabado</th>
    <th width="80" scope="col">Domingo</th>
  </tr>
  <tr>
  
    <th scope="row">7:30am - 8:10am </th>
    
    <? /////// HORARIO 101 ///////////////////////////////////////////////////////////// ?>
    <td><div align="center">
    <? while($resultados101 mysql_fetch_array($resultado1)) { 
    
$rest101_1 substr($resultados101['hora1'], 02); 
    
$rest101_2 substr($resultados101['hora2'], 02); 
    
$rest101_3 substr($resultados101['hora3'], 02); 
    
$rest101_4 substr($resultados101['hora4'], 02); 
    
?>   
    <? if(ereg(10$rest101_1) && ereg(01$resultados101['dish1'])) { ?>
    <a href="inforalum2.php?codigo=<? echo $resultados101['cod_mat'?> ">
    <? echo $resultados101['cod_mat']." ".$resultados101['aula1']; ?></a>
    <? } elseif(ereg(10$rest101_2) && ereg(01$resultados101['dish2'])) { ?>
    <a href="inforalum2.php?codigo=<? echo $resultados101['cod_mat'?> ">
    <? echo $resultados101['cod_mat']." ".$resultados101['aula2']; ?></a>
    <? } elseif(ereg(10$rest101_3) && ereg(01$resultados101['dish3'])) { ?>
    <a href="inforalum2.php?codigo=<? echo $resultados101['cod_mat'?> ">
    <? echo $resultados101['cod_mat']." ".$resultados101['aula3']; ?></a>
    <? } elseif(ereg(10$rest101_4) && ereg(01$resultados101['dish4'])) { ?>
    <a href="inforalum2.php?codigo=<? echo $resultados101['cod_mat'?> ">
    <? echo $resultados101['cod_mat']." ".$resultados101['aula4']; ?></a>
    <? } } ?>  
    </div></td>
    <? /////// FIN DE HORARIO 101 /////////////////////////////////////////////////////// ?>
    <? /////// HORARIO 201 ///////////////////////////////////////////////////////////// ?>
    <td><div align="center">
    <? while($resultados201 mysql_fetch_array($resultado1)) { 
    
$rest201_1 substr($resultados201['hora1'], 02); 
    
$rest201_2 substr($resultados201['hora2'], 02); 
    
$rest201_3 substr($resultados201['hora3'], 02); 
    
$rest201_4 substr($resultados201['hora4'], 02); 
    
?>   
          <? if(ereg(20$rest201_1) && ereg(01$resultados201['dish1'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados201['cod_mat'?> ">
           <? echo $resultados201['cod_mat']." ".$resultados201['aula1']; ?></a>
    <? } elseif(ereg(20$rest201_2) && ereg(01$resultados201['dish2'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados201['cod_mat'?> ">
           <? echo $resultados201['cod_mat']." ".$resultados201['aula2']; ?></a>
    <? } elseif(ereg(20$rest201_3) && ereg(01$resultados201['dish3'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados201['cod_mat'?> ">
           <? echo $resultados201['cod_mat']." ".$resultados201['aula3']; ?></a>
    <? } elseif(ereg(20$rest201_4) && ereg(01$resultados201['dish4'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados201['cod_mat'?> ">
           <? echo $resultados201['cod_mat']." ".$resultados201['aula4']; ?></a>
    <? } } ?>  
    </div></td>
    <? /////// FIN DE HORARIO 201 /////////////////////////////////////////////////////// ?>
    <? /////// HORARIO 301 ///////////////////////////////////////////////////////////// ?>
    <td><div align="center">
    <? while($resultados301 mysql_fetch_array($resultado1)) { 
    
$rest301_1 substr($resultados301['hora1'], 02); 
    
$rest301_2 substr($resultados301['hora2'], 02); 
    
$rest301_3 substr($resultados301['hora3'], 02); 
    
$rest301_4 substr($resultados301['hora4'], 02); 
    
?>   
          <? if(ereg(30$rest301_1) && ereg(01$resultados301['dish1'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados301['cod_mat'?> ">
           <? echo $resultados301['cod_mat']." ".$resultados301['aula1']; ?></a>
    <? } elseif(ereg(30$rest301_2) && ereg(01$resultados301['dish2'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados301['cod_mat'?> ">
           <? echo $resultados301['cod_mat']." ".$resultados301['aula2']; ?></a>
    <? } elseif(ereg(30$rest301_3) && ereg(01$resultados301['dish3'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados301['cod_mat'?> ">
           <? echo $resultados301['cod_mat']." ".$resultados301['aula3']; ?></a>
    <? } elseif(ereg(30$rest301_4) && ereg(01$resultados301['dish4'])) { ?>
          <a href="inforalum2.php?codigo=<? echo $resultados301['cod_mat'?> ">
           <? echo $resultados301['cod_mat']." ".$resultados301['aula4']; ?></a>
    <? } } ?>  
    </div></td>
    <? /////// FIN DE HORARIO 301 /////////////////////////////////////////////////////// ?>    
    <td><div align="center">401</div></td>
    <td><div align="center">501</div></td>
    <td><div align="center">601</div></td>
    <td><div align="center">701</div></td>

  </tr>
  <tr>
    <th scope="row">8:10am - 8:50am </th>
    <td><div align="center">102</div></td>
    <td><div align="center">202</div></td>
    <td><div align="center">302</div></td>
    <td><div align="center">402</div></td>
    <td><div align="center">502</div></td>
    <td><div align="center">602</div></td>
    <td><div align="center">702</div></td>
  </tr>
</table>
aqui esta como va parte del codigo para que veas de los while que te hablo
  #12 (permalink)  
Antiguo 03/07/2010, 22:57
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 9 años, 5 meses
Puntos: 55
Respuesta: Crear horario en PHP

ya pude resolver, el problema segun era que todos los while trabajaban con la misma variable $resultado1 lo que hice fue crear muchas variables con diferentes nombres pero que hacen la misma consulta.

ahora si alguien sabe porque pasa esto seria bueno que lo dijera, o acaso es un bug

Etiquetas: horario
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:44.