Foros del Web » Programando para Internet » PHP »

Como dibujar tabla tipo asistencia con php

Estas en el tema de Como dibujar tabla tipo asistencia con php en el foro de PHP en Foros del Web. Hola amigos, necesito un poco de ayuda con una tabla muy particular. Lo que quiero es dibujar un tabla con fechas y nombres. Para mostrarles ...
  #1 (permalink)  
Antiguo 22/02/2011, 17:04
 
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 3
Como dibujar tabla tipo asistencia con php

Hola amigos, necesito un poco de ayuda con una tabla muy particular.

Lo que quiero es dibujar un tabla con fechas y nombres. Para mostrarles como debe ser les pondré una imagen ;).



Este es el codigo HTML:

Código HTML:
<table border="1">
  <tr>
    <th scope="col">nombre</th>
    <th scope="col">fecha</th>
    <th scope="col">fecha</th>
    <th scope="col">fecha</th>
    <th scope="col">muchas fechas....</th>
  </tr>
  <tr>
    <td>javier</td>
    <td>1</td>
    <td>0</td>
    <td>0</td>
    <td>...</td>
  </tr>
  <tr>
    <td>pedro</td>
    <td>1</td>
    <td>1</td>
    <td>0</td>
    <td>...</td>
  </tr>
  <tr>
    <td>juan</td>
    <td>0</td>
    <td>1</td>
    <td>1</td>
    <td>...</td>
  </tr>
  <tr>
    <td>camila</td>
    <td>0</td>
    <td>0</td>
    <td>1</td>
    <td>...</td>
  </tr>
</table> 


Es una especie de tabla de asistencia... ahora, tengo los arreglos con las fechas y el arreglo con la asistencia, pero no se como ir desplegando las fechas hacia el lado y luego ir poniendo los 1's y 0's correspondiente a la asistencia.

Se me ocurrió dibujar las fechas, pero por mas que trato no se me ocurre por que soy un novato en esto de php u.u

Espero su ayuda amigos.
  #2 (permalink)  
Antiguo 22/02/2011, 20:27
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Como dibujar tabla tipo asistencia con php

Hola,

Podrias decirnos cómo organizas tu base de datos, asi sería más facil ayudarte.
  #3 (permalink)  
Antiguo 22/02/2011, 20:31
Avatar de richicasas  
Fecha de Ingreso: abril-2007
Ubicación: Colombia
Mensajes: 692
Antigüedad: 17 años
Puntos: 13
Busqueda Respuesta: Como dibujar tabla tipo asistencia con php

Código PHP:
<table border="1">
  <
tr>
    <
th scope="col">nombre</th>
    <
th scope="col">fecha</th>
    <
th scope="col">fecha</th>
    <
th scope="col">fecha</th>
    <
th scope="col">muchas fechas....</th>
  </
tr>
//AQUI EMPIEZAS EL WHILE PARA RECORRER LOS DATOS  
<tr>
    <
td>javier</td>
    <
td>1</td>
    <
td>0</td>
    <
td>0</td>
    <
td>...</td>
  </
tr>
//AQUI CIERRA EL WHILE 
//Por cada ciclo se genera una fila, osea todo el registro se muestra.

</table
__________________
Juguetes Sexuales
  #4 (permalink)  
Antiguo 23/02/2011, 08:46
 
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Como dibujar tabla tipo asistencia con php

Cita:
Iniciado por kenproxd Ver Mensaje
Hola,

Podrias decirnos cómo organizas tu base de datos, asi sería más facil ayudarte.
Bueno, básicamente son clases que se realizan.

Código PHP:
Ver original
  1. function clasesxMes($mes, $rut_profe){
  2.     $con_clases = "select t.fecha_clase
  3.                         from clase t
  4.                         where month(t.fecha_clase) =  '$mes'
  5.                         and t.rut_profe =  '$rut_profe'";
  6.     $clases = consulta($con_clases);
  7.     return $clases;
  8. }
  9. $rut_profe="17.208.301-3";
  10. $mes = "10";
  11.  
  12. $clases_mes = clasesxMes($mes, $rut_profe);
  13. $clases = mysql_fetch_assoc($clases_mes);


Con esta función obtengo las clases que se han hecho en un mes por profesor, como explicaba mas arriba quiero mostrar como primera cosa todas las fechas horizontalmente.

Gracias por tu interes ;)

Cita:
Iniciado por richicasas Ver Mensaje
Código PHP:
<table border="1">
  <
tr>
    <
th scope="col">nombre</th>
    <
th scope="col">fecha</th>
    <
th scope="col">fecha</th>
    <
th scope="col">fecha</th>
    <
th scope="col">muchas fechas....</th>
  </
tr>
//AQUI EMPIEZAS EL WHILE PARA RECORRER LOS DATOS  
<tr>
    <
td>javier</td>
    <
td>1</td>
    <
td>0</td>
    <
td>0</td>
    <
td>...</td>
  </
tr>
//AQUI CIERRA EL WHILE 
//Por cada ciclo se genera una fila, osea todo el registro se muestra.

</table
La cantidad de columnas no las se, eso depende de lo que encuentre en la consulta. En el fondo, quiero mostrar cuantas columnas (fechas de clase) como registros tenga... me parece que lo que tu me dices son filas, no columnas.

Gracias.

Última edición por javier86; 23/02/2011 a las 08:51
  #5 (permalink)  
Antiguo 23/02/2011, 09:00
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Como dibujar tabla tipo asistencia con php

Juaz!!! estas realizando lo mismo que yo ....... realize la tabla con las siguientes cabeceras :

Código HTML:
Ver original
  1. <table width="100%" border="1">
  2.   <tr>
  3.   <!--ESTA PARTE SE RELLENA MEDIANTE UNA CONSULTA PARA VERIFICAR LA CANTIDAD DE DIAS DEL MES-->
  4.     <td>NOMBRE</td>
  5.     <td>01-02-2011</td>
  6.     <td>02-02-2011</td>
  7.     <td>03-02-2011</td>
  8.     <td>ETC......</td>
  9.   </tr>
  10.   <tr>
  11.   <!--TAMBIEN LO LLENAS POR MEDIO DE UNA CONSULTA PARA SABER LA CANTIDAD DE NOMBRES A DESPLEGAR Y LOS RADIO BUTTONS SE REALIZAN ATRAVEZ DE UN COUNT A LAS FECHAS :p-->
  12.     <td>JUANITO</td>
  13.    <!--ACA EL WHILE-->
  14.     <td align="center"><input type="radio" name="<?php echo $fecha;?>"></td>
  15.     </tr>


algo asi mas menos es la idea a realizar, espero te sirva.
  #6 (permalink)  
Antiguo 23/02/2011, 09:43
 
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Como dibujar tabla tipo asistencia con php

Cita:
Iniciado por bUllan9ebrio Ver Mensaje
Juaz!!! estas realizando lo mismo que yo ....... realize la tabla con las siguientes cabeceras :

Código HTML:
Ver original
  1. <table width="100%" border="1">
  2.   <tr>
  3.   <!--ESTA PARTE SE RELLENA MEDIANTE UNA CONSULTA PARA VERIFICAR LA CANTIDAD DE DIAS DEL MES-->
  4.     <td>NOMBRE</td>
  5.     <td>01-02-2011</td>
  6.     <td>02-02-2011</td>
  7.     <td>03-02-2011</td>
  8.     <td>ETC......</td>
  9.   </tr>
  10.   <tr>
  11.   <!--TAMBIEN LO LLENAS POR MEDIO DE UNA CONSULTA PARA SABER LA CANTIDAD DE NOMBRES A DESPLEGAR Y LOS RADIO BUTTONS SE REALIZAN ATRAVEZ DE UN COUNT A LAS FECHAS :p-->
  12.     <td>JUANITO</td>
  13.    <!--ACA EL WHILE-->
  14.     <td align="center"><input type="radio" name="<?php echo $fecha;?>"></td>
  15.     </tr>


algo asi mas menos es la idea a realizar, espero te sirva.
Gracias por tu interes , pero los encabezados no los puedo generar... estoy intentando esto:

Código PHP:
Ver original
  1. <table border="1">
  2.     <? do {?>
  3.   <tr>
  4.     <th scope="col">nombre</th>
  5.     <th scope="col">fecha</th>
  6.     <th scope="col">fecha</th>
  7.     <th scope="col">fecha</th>
  8.     <? echo "<th>" .$clases["fecha_clase"]. "</th>";?>
  9.   </tr>
  10.  
  11.   <tr>
  12.     <td>pedro</td>
  13.     <td>1</td>
  14.     <td>1</td>
  15.     <td>0</td>
  16.     <? echo "<td>". 1 . "</td>"?>
  17.   </tr>
  18.     <? } while ($clases = mysql_fetch_assoc($clases_mes)); ?>
  19. </table>

Según pensé me deberia dibujar los <TH></TH> y luego ir agregando los <TD></TD>, pero me va agregando filas con las fechas hacia abajo como esto:


nombre fecha fecha fecha
pedro 1 1 0 1
nombre fecha fecha fecha 2010-10-20
pedro 1 1 0 1
nombre fecha fecha fecha 2010-10-27
pedro 1 1 0 1

Gracias.
  #7 (permalink)  
Antiguo 23/02/2011, 09:56
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Como dibujar tabla tipo asistencia con php

Realiza un ciclo para las fechas y otro para la asistencia , la asistencia la tomaras por medio de un radio button?? un checkbox??? , esos campos son los que se deben repetir para generarlos hacia al lado
  #8 (permalink)  
Antiguo 23/02/2011, 10:09
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Como dibujar tabla tipo asistencia con php

Mira saca la idea de este code .......

Código PHP:
Ver original
  1. $contador=0;
  2.   echo '<table border="1">
  3.         <tr>
  4.             <th scope="col">nombre</th>';
  5.             while ($clases = mysql_fetch_assoc($clases_mes));
  6.                 {
  7.                     $fecha=$clases['fecha'];
  8.                     echo '<th scope="col">'.$fecha.'</th>';
  9.                     $contador++;
  10.                 }
  11.   echo  '</tr>
  12.        <tr>';
  13.             for ($i=1;$i<=$k;$i++)
  14.             {
  15.                 echo '<th scope="col">'.$nombre.'</th>';
  16.                 for ($j=1;$j<=$contador;$j++)
  17.                 {
  18.                   echo '<input type="radio" value="'.$j.'">';
  19.                 }
  20.             }
  21.    echo '</tr>
  22.         </table>';


tu lo acomodas a tu preferencia, yo no me se tu code pero lo trate de adaptar para que lo entiendas
  #9 (permalink)  
Antiguo 23/02/2011, 13:23
 
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Como dibujar tabla tipo asistencia con php

Cita:
Iniciado por bUllan9ebrio Ver Mensaje
Mira saca la idea de este code .......

Código PHP:
Ver original
  1. $contador=0;
  2.   echo '<table border="1">
  3.         <tr>
  4.             <th scope="col">nombre</th>';
  5.             while ($clases = mysql_fetch_assoc($clases_mes));
  6.                 {
  7.                     $fecha=$clases['fecha'];
  8.                     echo '<th scope="col">'.$fecha.'</th>';
  9.                     $contador++;
  10.                 }
  11.   echo  '</tr>
  12.        <tr>';
  13.             for ($i=1;$i<=$k;$i++)
  14.             {
  15.                 echo '<th scope="col">'.$nombre.'</th>';
  16.                 for ($j=1;$j<=$contador;$j++)
  17.                 {
  18.                   echo '<input type="radio" value="'.$j.'">';
  19.                 }
  20.             }
  21.    echo '</tr>
  22.         </table>';


tu lo acomodas a tu preferencia, yo no me se tu code pero lo trate de adaptar para que lo entiendas
Muchas gracias, la verdad me ha servido mucho tu respuesta... he estado adaptando tu codigo a lo que necesito, va todo bien hasta que paso al segundo alumno.

Código PHP:
Ver original
  1. <?
  2.   echo '<table border="1">
  3.        <tr>
  4.            <th scope="col">nombre</th>';
  5.             while ($clases1 = mysql_fetch_assoc($clases_mes1))
  6.                 {
  7.                     $fecha = $clases1["fecha_clase"];
  8.                     echo '<th scope="col">' . $fecha .  '</th>';
  9.                 }
  10.   echo  '</tr>';
  11.             while ($datos_alumnos = mysql_fetch_assoc($alumnos)){ // todos los alumnos
  12.   echo  '<tr>';
  13.                 echo '<th scope="col">'.$datos_alumnos["nombre_alumno"]. " ". $datos_alumnos["apellidop_alumno"] ." ". $datos_alumnos["apellidom_alumno"].'</th>';
  14.                 $clases_mes2 = clasesxMes($mes, $rut_profe);
  15.                 while($clases2 = mysql_fetch_assoc($clases_mes2)) // todas las clases en el mes
  16.                 {
  17.                     $asistencia = asistenciaMes($mes, $rut_profe);
  18.                     while($asistencia_alumnos = mysql_fetch_assoc($asistencia)){ // la asistencia en el mes
  19.                         if(($datos_alumnos["rut_alumno"] == $asistencia_alumnos["rut_alumno"]) &&($asistencia_alumnos["fecha_clase"] == $clases2["fecha_clase"])){
  20.                             echo '<th scope="col">'. 1 . '</th>';
  21.                            
  22.                         }
  23.                         else{
  24.                             echo '<th scope="col">'. 0 . '</th>';
  25.                         }
  26.                        
  27.                     }
  28.                 }
  29.  
  30.    echo '</tr>';               
  31.             }
  32.  
  33.    echo '</table>';
  34. ?>

Me muestra esto por pantalla



nombre |2010-10-20 | 2010-10-27|
RODRIGO |1 | 0| 0 |0| 0| 0|
JAVIER |0 | 1| 0 |0| 0| 1|


No se por que me muestra estas celdas de mas :(.
  #10 (permalink)  
Antiguo 23/02/2011, 13:50
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Como dibujar tabla tipo asistencia con php

Cuales celdas demas compa??? puedes mandar un print de pantalla
  #11 (permalink)  
Antiguo 02/04/2011, 20:09
 
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Como dibujar tabla tipo asistencia con php

Bueno finalmente pude realizar este codigo, con mucho esfuerzo, lo que hice fue muy parecido a lo que indica @bUllan9ebrio:

Código PHP:
Ver original
  1. echo '<thead>';
  2.   echo '<tr>';
  3.   echo '<th scope="col">&nbsp;</th>';
  4.   echo  '<th scope="col">Nombre</th>'; // imprimimos los encabezados de la tabla con las fechas de tutoría
  5.             while (){ //mientras hayan clases
  6.                     echo '<th scope="col">' . $fecha . '</th>'; //imprimimos las clases del mes
  7.             }
  8.   echo  '</tr></thead>';
  9.             while (){ // mientras hayan alumnos
  10.   echo  '<tr>';
  11.                 echo '<th scope="col">Alumno/a</th>';
  12.                 echo '<td scope="col">'. $datos_alumnos["nombre_alumno"]. '</td>';
  13.                 while() // todas las clases en el mes
  14.                 {
  15.                     tomo el rut del alumno y hago la consulta si fue a esa clase
  16.                     $rows = mysql_num_rows($asiste);// si fue entonces devuelve 1
  17.                    
  18.                     if($rows == 1){
  19.                         echo '<td scope="col" align="center">'. 1 . '</td>';
  20.                     }
  21.                     else{
  22.                         echo '<td scope="col" align="center">'. 0 . '</td>';
  23.                     }
  24.                 }
  25.    echo '</tr>';

eso es todo ;)

Etiquetas: php-mysql, tablas
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:47.