Foros del Web » Programando para Internet » PHP »

Calendario con valores en PHP

Estas en el tema de Calendario con valores en PHP en el foro de PHP en Foros del Web. Hola buenos dias... En el proyecto de control de horas de la empresa necesito mostrar una tabla estilo calendario, donde cada casilla sea el total ...
  #1 (permalink)  
Antiguo 02/05/2012, 09:27
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Calendario con valores en PHP

Hola buenos dias... En el proyecto de control de horas de la empresa necesito mostrar una tabla estilo calendario, donde cada casilla sea el total de horas trabajadas por el empleado en dicho dia, es decir, si en el dia 1 trabajo 8 horas se mostrara eso, si en el dia 2 fueron 10 hara lo mismo y asi sucesivamente... Los datos se los va a traer de una base de datos donde estara todos la fecha y las horas trabajadas... Espero haberme explicado bien... Muchas gracias
  #2 (permalink)  
Antiguo 02/05/2012, 13:45
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

No se si esto se hara realmente en php... Si alguien tiene alguna alternativa en otro lenguaje, lo podriamos discutir... O si no quedo claro mi planteamiento, pueden preguntarme... No todos a la vez por favor Muchas gracias
  #3 (permalink)  
Antiguo 02/05/2012, 14:27
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

si no muestras ningún código o tu progreso, dudo mucho que alguien te ayude...

De todos modos, lo ideal seria construir una tabla html dinámica...

Para saber cuantas filas lleva cada mes debe saber el número de días del mes, esto con las funciones de fecha de php Date

-Primer paso. Construir los meses sin ninguna hora adentro.

-Segundo paso, hacer consultas en la BD cada vez que se construye un día algo como:

Código SQL:
Ver original
  1. SELECT COUNT(horas_trabajadas) FROM tabla WHERE DAY(fecha)=1;
  2. SELECT COUNT(horas_trabajadas) FROM tabla WHERE DAY(fecha)=2;
  3. //etc etc etc
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #4 (permalink)  
Antiguo 02/05/2012, 14:43
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Cita:
Iniciado por malakian Ver Mensaje
si no muestras ningún código o tu progreso, dudo mucho que alguien te ayude...

De todos modos, lo ideal seria construir una tabla html dinámica...

Para saber cuantas filas lleva cada mes debe saber el número de días del mes, esto con las funciones de fecha de php Date

-Primer paso. Construir los meses sin ninguna hora adentro.

-Segundo paso, hacer consultas en la BD cada vez que se construye un día algo como:

Código SQL:
Ver original
  1. SELECT COUNT(horas_trabajadas) FROM tabla WHERE DAY(fecha)=1;
  2. SELECT COUNT(horas_trabajadas) FROM tabla WHERE DAY(fecha)=2;
  3. //etc etc etc
Yo queria hacer algo como esto

Capturar fecha

Hacer un query tipo select donde fecha sea igual o menor a la fecha_capturada

Hacer un ciclo for parecido a esto for (i=0; i<=dia_fecha_capturada; i++)

Dentro del ciclo hacer algo asi Select sum(campo_a_sumar) from tabla where fecha=i/mm/yyyy

Y luego hacer la tabla con un while (variable=segunda_query)
echo <tr>
echo <td>variable['indice']</td>

A grande rasgos seria eso, pero estoy un poco trancado, aparte que no se si mi idea es la correcta... Muchas gracias
  #5 (permalink)  
Antiguo 02/05/2012, 14:46
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

Bueno la idea no me parece mala...
en vez del SUM, mejor un COUNT....

especificamente en que estas "trancado"? si ya tienes la idea...
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #6 (permalink)  
Antiguo 02/05/2012, 14:52
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Cita:
Iniciado por malakian Ver Mensaje
Bueno la idea no me parece mala...
en vez del SUM, mejor un COUNT....

especificamente en que estas "trancado"? si ya tienes la idea...
Que diferencia hay entre count y sum... Lo que pasa es que son varios registros los que tengo que sumar...

En la manipulacion de fechas

Te explico:

Primero: No se si funcionara la comparacion de fechas y si tendra algun inconveniente en el primer query

Segundo: No se si el segundo query puede llegar a funcionar. Lo veo de esta manera

Select sum(campo_a_sumar) from tabla where fecha=(DATE_FORMAT, $i/%m/%Y)

Donde i seria el valor del for y corresponderia al dia

Tercero: Como haria para imprimir lineas de 7 como un calendario comun y corriente...

Muchas gracias
  #7 (permalink)  
Antiguo 02/05/2012, 16:04
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Ya he estado trabajando en una pequeña prueba pero no obtengo ningun resultado... A ver si alguien me puede ayudar... Yo creo que tiene algo que ver con el ciclo for

Código PHP:
Ver original
  1. <?php
  2.     include("conexion.php");
  3.    
  4.     $con=conectar();
  5.    
  6.     $fecha_actual=date('d/m/Y');
  7.    
  8.     $datos="SELECT * from reporte_horas where fecha<=current_date()";
  9.     $resultado=mysql_query($datos,$con);
  10.    
  11.     $fecha_div=explode("/",$fecha_actual);
  12.     $dia=$fecha_div[0];
  13.     $mes=$fecha_div[1];
  14.     $year=$fecha_div[2];
  15.    
  16.     for($i=0; $i<=$dia;$i++)
  17.     {
  18.         $fecha_acum="SELECT sum(horas) from reporte_horas where fecha=$i/$mes/$year)";
  19.         $resultado2=mysql_query($fecha_acum,$con);
  20.     }
  21.     while($variable=$resultado2)
  22.     {
  23.         echo '<tr>';
  24.         echo '<td>',$variable,'</td>';
  25.         echo '</tr>';
  26.     }
  27. ?>
  #8 (permalink)  
Antiguo 03/05/2012, 08:09
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Nadie tiene alguna idea?

P.D. Queria agregar algo... En el primer query donde aparece current_date, se supone que debo mostrar solamente los registros del mes y el año actual, es decir, que current_date no debe ir en esa consulta... Si alguien tambien sabe como hacerlo.. Muchas gracias

Última edición por dragonfire256; 03/05/2012 a las 08:18
  #9 (permalink)  
Antiguo 03/05/2012, 13:06
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

He hecho algunos cambios pero sigue sin mostrarme nada... Alguien podria echarme una mano?

Código PHP:
Ver original
  1. <?php
  2.     include("../admin/conexion.php");
  3.    
  4.     $con=conectar();
  5.    
  6.     $fecha_actual=date('d/m/Y');
  7.    
  8.     $datos="SELECT * from reporte_horas where MONTH(fecha)=MONTH(CURDATE()) AND YEAR(fecha)=YEAR(CURDATE())";
  9.     $resultado=mysql_query($datos,$con);
  10.    
  11.    
  12.     $fecha_div=explode("/",$fecha_actual);
  13.     $dia=date('d');
  14.    
  15.     for($i=0; $i<=$dia;$i++)
  16.     {
  17.         $fecha_acum="SELECT sum(horas) from reporte_horas where DAY(fecha)=DAY('$i') AND MONTH(fecha)=MONTH(CURDATE()) AND YEAR(fecha)=YEAR(CURDATE())";
  18.         $resultado2=mysql_query($fecha_acum,$con);
  19.     }
  20.     while($variable=mysql_fetch_array($resultado2))
  21.     {
  22.         echo '<tr>';
  23.         echo '<td>',$variable[0],'</td>';
  24.         echo '</tr>';
  25.     }
  26. ?>
  #10 (permalink)  
Antiguo 03/05/2012, 16:00
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Ya tengo casi listo el calendario pero quiero agregarle un par de cosas mas

Primero:Quiero que el registro del dia 1 empiece justo debajo del encabezado correspondiente, por ejemplo, en el mes de mayo empezaria a partir del martes, en junio a partir del viernes, y asi sucesivamente

Segundo: Que las las filas no excedan las 7 columnas

Muchas gracias

P.D. Aqui les dejo lo que llevo hecho:


Código PHP:
Ver original
  1. <?php
  2.     include("../admin/conexion.php");
  3.    
  4.     $con=conectar();
  5.    
  6.     $fecha_actual=date('d/m/Y');
  7.    
  8.     //$datos="SELECT * from reporte_horas where MONTH(fecha)=MONTH(CURDATE()) AND YEAR(fecha)=YEAR(CURDATE())";
  9.     //$resultado=mysql_query($datos,$con);
  10.    
  11.    
  12.     $fecha_div=explode("/",$fecha_actual);
  13.     $dia=date('d');
  14.    
  15.     for($i=0; $i<=$dia;$i++)
  16.     {
  17.         $fecha_acum="SELECT fecha,sum(horas) from (SELECT * FROM reporte_horas ORDER BY DAY(fecha)) reporte_horas where MONTH(fecha)=MONTH(curdate()) AND YEAR(fecha)=YEAR(CURDATE())group by fecha";
  18.         $resultado=mysql_query($fecha_acum,$con);
  19.     }
  20.     ?>
  21.     <table border="1" align="center">
  22.     <thead><tr><th>Domingo</th><th>Lunes</th><th>Martes</th><th>Miercoles</th><th>Jueves</th><th>Viernes</th><th>Sabado</th></tr></thead>
  23.     <?php
  24.     while($variable=mysql_fetch_array($resultado))
  25.     {
  26.         echo '<tr>';
  27.         echo '<td>',$variable[1],'</td>';
  28.         echo '</tr>';
  29.     }
  30. ?>
  31.     </table>
  #11 (permalink)  
Antiguo 04/05/2012, 09:00
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Nadie tiene alguna idea? Si lo que pienso hacer no puede hacerse con php, me gustaria que dieran otras alternativas para poder investigar... Muchas gracias
  #12 (permalink)  
Antiguo 04/05/2012, 14:34
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

Hola, que pena que hace rato no me conectaba..

primero debes obtener el dia en que empieza el mes, lo puedes hacer con esto:
Código PHP:
Ver original
  1. $dia_num=Date("N",strtotime($fecha));
en $dia_num quedará almacenado el numero correspondiente...

luego dentro de un ciclo empiezas a dibujar los días a partir de $dia_num, si son inferiores serían columnas vacias..
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #13 (permalink)  
Antiguo 04/05/2012, 14:56
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Cita:
Iniciado por malakian Ver Mensaje
Hola, que pena que hace rato no me conectaba..

primero debes obtener el dia en que empieza el mes, lo puedes hacer con esto:
Código PHP:
Ver original
  1. $dia_num=Date("N",strtotime($fecha));
en $dia_num quedará almacenado el numero correspondiente...

luego dentro de un ciclo empiezas a dibujar los días a partir de $dia_num, si son inferiores serían columnas vacias..

No te preocupes... No me ha quedado del todo claro... Dejame mostrarte un boceto de lo que quiero

Domingo Lunes Martes Miercoles Jueves Viernes Sabado
8 9 8 10
10 9 9 8 8
Este seria para el mes de mayo que empezo un dia martes

Domingo Lunes Martes Miercoles Jueves Viernes Sabado
10
10 9 9 8 8
Este seria para el mes de junio que empezara un dia viernes

Y asi sucesivamente

Pero no me queda del todo claro como hacerlo... Como hacer que empiece a imprimir justo debajo del encabezado del dia 1 de ese mes... Que los dias sabado y domingo queden vacios, a menos que se haya trabajado en ese dia como tal... Y para que no hayan mas de 7 columnas en una fila, como un calendario normal... No se si es posible hacerlo con php o hace falta algo mas... Muchas gracias

P.D. Los numeros de cada dia es el resultado de la suma de un campo de una base de datos... Pero en eso no tengo problema, sino en como mostrarlo como lo planteo mas arriba... Muchas gracias

Última edición por dragonfire256; 04/05/2012 a las 15:42
  #14 (permalink)  
Antiguo 04/05/2012, 15:46
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

claro que todo se puede hacer con PHP te muestro un ejemplo de como hacer una tabla de 7 columnas

Código PHP:
Ver original
  1. $salto=1;
  2. $num_filas=7;
  3. $tabla='<table border="1"><tr>';
  4. for ($i=0;$i<=100;$i++){
  5.   $tabla.="<td>$salto</td>";
  6.   if ($salto==$num_filas){
  7.    $tabla.="</tr><tr>";
  8.    $salto=1;
  9.  }
  10. }
  11. $tabla.="</tr></table>";
  12. echo $tabla;

fijate que no tiene nada de raro, solo es logica...
depronto toque modificarle algunas cosas, pero esa es la idea, utilizala...
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #15 (permalink)  
Antiguo 04/05/2012, 15:56
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Cita:
Iniciado por malakian Ver Mensaje
claro que todo se puede hacer con PHP te muestro un ejemplo de como hacer una tabla de 7 columnas

Código PHP:
Ver original
  1. $salto=1;
  2. $num_filas=7;
  3. $tabla='<table border="1"><tr>';
  4. for ($i=0;$i<=100;$i++){
  5.   $tabla.="<td>$salto</td>";
  6.   if ($salto==$num_filas){
  7.    $tabla.="</tr><tr>";
  8.    $salto=1;
  9.  }
  10. }
  11. $tabla.="</tr></table>";
  12. echo $tabla;


fijate que no tiene nada de raro, solo es logica...
depronto toque modificarle algunas cosas, pero esa es la idea, utilizala...

Y como haria para posicionarme justo debajo de la columna correspondiente al dia? Es decir, que en mayo empiece a partir del dia martes de la primera fila a escribir los datos... Y que deje los dias sabado y domingo libres, a menos que tenga datos... Muchas gracias y disculpa las molestias
  #16 (permalink)  
Antiguo 04/05/2012, 16:06
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

dragonfire256

eso ya lo dije en mi anterior respuesta, obtener el día que inicia el mes, esto lo logras con la función date() que ya te pase.. de resto es solo lógica...

Intentalo hasta que llegues al punto de (definitivamente me enrede).. pero no hace ni 10 minutos respondí y ya estas escribiendo otra cosa ...
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #17 (permalink)  
Antiguo 04/05/2012, 16:45
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Cita:
Iniciado por malakian Ver Mensaje
dragonfire256

eso ya lo dije en mi anterior respuesta, obtener el día que inicia el mes, esto lo logras con la función date() que ya te pase.. de resto es solo lógica...

Intentalo hasta que llegues al punto de (definitivamente me enrede).. pero no hace ni 10 minutos respondí y ya estas escribiendo otra cosa ...
Dejame decirte que probe tu codigo y funciona perfectamente... Faltaria lo de posicionar el primer registro... Pero eso se puede dejar para el lunes... Que ya va siendo hora de salir del trabajo

Aqui te posteo lo que hice

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3. $con=conectar();
  4.  
  5. $fecha_actual=date('d/m/Y');
  6. $salto=1;
  7. $num_filas=7;
  8. $dia_num=Date("N",strtotime($fecha_actual));
  9. $tabla='<table border="1"><tr>';
  10.  
  11. for($i=1;$i<=$dia_num;$i++)
  12. {
  13.     $tabla.="<td>$salto</td>";
  14.     if($i==7)
  15.     {
  16.         $tabla.="</tr><tr>";
  17.         $salto=1;
  18.     }
  19.     if($i==14)
  20.     {
  21.         $tabla.="</tr><tr>";
  22.         $salto=1;
  23.     }
  24.     if($i==21)
  25.     {
  26.         $tabla.="</tr><tr>";
  27.         $salto=1;
  28.     }
  29.     if($i==28)
  30.     {
  31.         $tabla.="</tr><tr>";
  32.         $salto=1;
  33.     }
  34.     if($i==35)
  35.     {
  36.         $tabla.="</tr><tr>";
  37.         $salto=1;
  38.     }
  39. }
  40. $tabla.="</tr></table>";
  41. echo $tabla;
  42. ?>
  #18 (permalink)  
Antiguo 04/05/2012, 19:57
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3. $con=conectar();
  4.  
  5. $fecha_actual=date('d/m/Y');
  6. $salto=1;
  7. $num_filas=7;
  8. $dia_num=Date("N",strtotime($fecha_actual));
  9. $tabla='<table border="1"><tr>';
  10.  
  11. for($i=1;$i<=30;$i++)
  12. {
  13.     $tabla.="<td>$salto</td>";
  14.     if($salto==$num_filas)
  15.     {
  16.         $tabla.="</tr><tr>";
  17.         $salto=1;
  18.     }
  19. }
  20. $tabla.="</tr></table>";
  21. echo $tabla;
  22. ?>

te lo corrijo por esto, menos código y hace lo mismo, lo de iniciar el día.... quiero que lo descubras por ti mismo.. si ya está muy dificil tranquilo que yo te hecho una mano, pero ojo intentalo para que aprendas...

ojo que el $dia_num no se aplica como lo tenías
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #19 (permalink)  
Antiguo 07/05/2012, 13:42
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Cita:
Iniciado por malakian Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3. $con=conectar();
  4.  
  5. $fecha_actual=date('d/m/Y');
  6. $salto=1;
  7. $num_filas=7;
  8. $dia_num=Date("N",strtotime($fecha_actual));
  9. $tabla='<table border="1"><tr>';
  10.  
  11. for($i=1;$i<=30;$i++)
  12. {
  13.     $tabla.="<td>$salto</td>";
  14.     if($salto==$num_filas)
  15.     {
  16.         $tabla.="</tr><tr>";
  17.         $salto=1;
  18.     }
  19. }
  20. $tabla.="</tr></table>";
  21. echo $tabla;
  22. ?>

te lo corrijo por esto, menos código y hace lo mismo, lo de iniciar el día.... quiero que lo descubras por ti mismo.. si ya está muy dificil tranquilo que yo te hecho una mano, pero ojo intentalo para que aprendas...

ojo que el $dia_num no se aplica como lo tenías
Lo que pasa es que estaba probando algo con $dia_num... Aqui te posteo el codigo de lo que llevo:

Código PHP:
Ver original
  1. <?php
  2. include("../admin/conexion.php");
  3. $con=conectar();
  4.  
  5. $salto=1;
  6. $num_filas=7;
  7. $fecha_actual=date ('d/m/Y');
  8. $dia_mes=Date("t",strtotime($fecha_actual));
  9. $tabla='<table border="1" width="80%" align="center"><tr>';
  10. $tabla.='<thead><tr><th>Domingo</th><th>Lunes</th><th>Martes</th><th>Miercoles</th><th>Jueves</th><th>Viernes</th><th>Sabado</th></tr></thead>';
  11.  
  12. for($i=1;$i<=$dia_mes;$i++)
  13. {
  14.     $tabla.="<td>$salto</td>";
  15.     if($i==7)
  16.     {
  17.         $tabla.="</tr><tr>";
  18.         $salto=1;
  19.     }
  20.     if($i==14)
  21.     {
  22.         $tabla.="</tr><tr>";
  23.         $salto=1;
  24.     }
  25.     if($i==21)
  26.     {
  27.         $tabla.="</tr><tr>";
  28.         $salto=1;
  29.     }
  30.     if($i==28)
  31.     {
  32.         $tabla.="</tr><tr>";
  33.         $salto=1;
  34.     }
  35. }
  36. $tabla.="</tr></table>";
  37. echo $tabla;
  38. ?>

Por cierto, nunca entendi el uso de la variable $salto, porque nunca cambia de valor y siempre se mantiene igual a 1... Lo que me faltaria es que el primer valor se coloque justo debajo del encabezado del primer dia... Pienso hacerlo con varias tomas de decisiones... Muchas gracias por tu ayuda
  #20 (permalink)  
Antiguo 07/05/2012, 16:00
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

Hola , si tienes razón con lo de $salto, se me olvido aumentarle el valor
Lo nuevo:
Halle los dias del mes con la maravillosa función Date y lo guarde en $dias_mes y le hice algunas modificaciones al ciclo, pruebalo tal cual y me cuentas..

Nota:

No he probado el código, si tiene errores por favor corrigelos

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3. $con=conectar();
  4. $fecha_actual=date('Y-m-d');
  5. $salto=1;
  6. $num_filas=7;
  7. $dia_num=Date("N",strtotime($fecha_actual));
  8. $mes=Date('m');
  9. $anio=Date('Y');
  10. $dias_mes= date('t', mktime(0,0,0, $mes, 1, $anio));
  11. $tabla='<table border="1"><tr>';
  12.  
  13. for($i=1;$i<=($dias_mes+$dia_num);$i++)
  14. {
  15.     if ($i>$dia_num){
  16.       $tabla.="<td>".($i-$dia_num)."</td>";
  17.   }else{
  18.     $tabla.="<td>&nbsp;</td>";
  19.   }
  20.   if($salto==$num_filas){
  21.         $tabla.="</tr><tr>";
  22.       $salto=1;
  23.     }else{
  24.     $salto++;
  25.   }        
  26. }
  27. $tabla.="</tr></table>";
  28. echo $tabla;
  29. ?>
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #21 (permalink)  
Antiguo 07/05/2012, 16:51
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Cita:
Iniciado por malakian Ver Mensaje
Hola , si tienes razón con lo de $salto, se me olvido aumentarle el valor
Lo nuevo:
Halle los dias del mes con la maravillosa función Date y lo guarde en $dias_mes y le hice algunas modificaciones al ciclo, pruebalo tal cual y me cuentas..

Nota:

No he probado el código, si tiene errores por favor corrigelos

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3. $con=conectar();
  4. $fecha_actual=date('Y-m-d');
  5. $salto=1;
  6. $num_filas=7;
  7. $dia_num=Date("N",strtotime($fecha_actual));
  8. $mes=Date('m');
  9. $anio=Date('Y');
  10. $dias_mes= date('t', mktime(0,0,0, $mes, 1, $anio));
  11. $tabla='<table border="1"><tr>';
  12.  
  13. for($i=1;$i<=($dias_mes+$dia_num);$i++)
  14. {
  15.     if ($i>$dia_num){
  16.       $tabla.="<td>".($i-$dia_num)."</td>";
  17.   }else{
  18.     $tabla.="<td>&nbsp;</td>";
  19.   }
  20.   if($salto==$num_filas){
  21.         $tabla.="</tr><tr>";
  22.       $salto=1;
  23.     }else{
  24.     $salto++;
  25.   }        
  26. }
  27. $tabla.="</tr></table>";
  28. echo $tabla;
  29. ?>
Ya decia yo lo de $salto Dejame probarlo y te aviso...

Ya lo estuve probando y funciona perfectamente... Ahora seria cuestion de sustituir $i-$dia_num por un mysql_fetch_array y que imprima el valor del indice.... Si el dia no tiene informacion (por ejemplo, un sabado o un domingo) la casilla quedara en blanco?... Mañana continuamos que ya es hora de salir Muchas gracias por tu ayuda

Última edición por dragonfire256; 07/05/2012 a las 17:01
  #22 (permalink)  
Antiguo 08/05/2012, 15:35
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Estoy trabajando en el codigo pero no veo en que me estoy equivocando... No coloca los valores en las posiciones correctas dentro de la tabla... Aqui lo posteo:

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3. $con=conectar();
  4. $fecha_actual=date('Y-m-d');
  5. $salto=1;
  6. $num_filas=7;
  7. $dia_num=Date("N",strtotime($fecha_actual));
  8. $mes=Date('m');
  9. $year=Date('Y');
  10. $dias_mes= date('t', mktime(0,0,0, $mes, 1, $year));
  11. $tabla='<table border="1" width="80%" align="center"><tr>';
  12. $tabla.='<thead><tr><th>Domingo</th><th>Lunes</th><th>Martes</th><th>Miercoles</th><th>Jueves</th><th>Viernes</th><th>Sabado</th></tr></thead><tr>';
  13.  
  14. for($i=0;$i<=($dias_mes+$dia_num);$i++)
  15. {
  16.     if ($i>$dia_num){
  17.       $fecha_acum="SELECT fecha,sum(horas) from (SELECT * FROM reporte_horas ORDER BY DAY(fecha)) reporte_horas where DAY(fecha)=$i AND MONTH(fecha)=MONTH(curdate()) AND YEAR(fecha)=YEAR(CURDATE())group by fecha";
  18.       $resultado=mysql_query($fecha_acum,$con);
  19.       $resultado2=mysql_fetch_array($resultado);
  20.       $tabla.="<td>".$resultado2[1]."</td>";
  21.   }else{
  22.     $tabla.="<td>&nbsp;</td>";
  23.   }
  24.   if($salto==$num_filas){
  25.         $tabla.="</tr><tr>";
  26.       $salto=1;
  27.     }else{
  28.     $salto++;
  29.   }        
  30. }
  31. $tabla.="</tr></table>";
  32. echo $tabla;
  33. ?>
  #23 (permalink)  
Antiguo 09/05/2012, 10:16
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

Hola, esperando que tu consulta este bien hecha, talvez sea esto:
Código PHP:
Ver original
  1. $fecha_acum="SELECT fecha,sum(horas) from (SELECT * FROM reporte_horas ORDER BY DAY(fecha)) reporte_horas where DAY(fecha)=".($i-$dia_num)." AND MONTH(fecha)=MONTH(curdate()) AND YEAR(fecha)=YEAR(CURDATE())group by fecha";
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #24 (permalink)  
Antiguo 09/05/2012, 11:26
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Cita:
Iniciado por malakian Ver Mensaje
Hola, esperando que tu consulta este bien hecha, talvez sea esto:
Código PHP:
Ver original
  1. $fecha_acum="SELECT fecha,sum(horas) from (SELECT * FROM reporte_horas ORDER BY DAY(fecha)) reporte_horas where DAY(fecha)=".($i-$dia_num)." AND MONTH(fecha)=MONTH(curdate()) AND YEAR(fecha)=YEAR(CURDATE())group by fecha";
Ya revise con tu codigo pero sigue igual... Me sigue saliendo los valores en la celda que no le corresponde... La consulta esta bien hecha porque me muestra los valores de manera correcta... El problema es que no los muestra en la casilla correspondiente... Muchas gracias

Agregandole esa consulta que sugieres, sale de dos a 3 casillas descuadrado para que tengas una idea
  #25 (permalink)  
Antiguo 09/05/2012, 14:29
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

que raro imprime la consulta directamente desde php y verifica que la consulta definitvamente este bien, no basta con que arroje un resultado, sino que el WHERE este quedando bien, por ultimo comprueba el arreglo $resultado2 haciendo un print_r()...

ya lo tienes de un ala....
De "terodactilo" dijo un jefe mio
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #26 (permalink)  
Antiguo 09/05/2012, 14:36
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Cita:
Iniciado por malakian Ver Mensaje
que raro imprime la consulta directamente desde php y verifica que la consulta definitvamente este bien, no basta con que arroje un resultado, sino que el WHERE este quedando bien, por ultimo comprueba el arreglo $resultado2 haciendo un print_r()...

ya lo tienes de un ala....
De "terodactilo" dijo un jefe mio
Al imprimir el query hace exactamente lo que necesito y muestra los datos correctamente... Con print_r da algo como esto

Código PHP:
Ver original
  1. Array ( [0] => 2012-05-03 [fecha] => 2012-05-03 [1] => 5.0 [sum(horas)] => 5.0 ) Array ( [0] => 2012-05-19 [fecha] => 2012-05-19 [1] => 20.0 [sum(horas)] => 20.0 )

No se si este resultado es normal porque no he utilizado ese comando... Muchas gracias por tu ayuda... Como siga sin saber como resolver eso, mi jefe me va a exterminar como un dinosaurio No, mentira... Espero
  #27 (permalink)  
Antiguo 09/05/2012, 14:41
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

bueno según tu arreglo, debería el 3 de mayo tener 5 horas y el 19 de mayo 20 horas, no es así....

Ahora me gustaría saber mas o menos como te esta saliendo en el calendario...
segundo, me puedes pegar el PRIMER SQL que genera desde PHP?? ya se que me has dicho que esta bien, pero quiero descartar
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #28 (permalink)  
Antiguo 09/05/2012, 14:49
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Cita:
Iniciado por malakian Ver Mensaje
bueno según tu arreglo, debería el 3 de mayo tener 5 horas y el 19 de mayo 20 horas, no es así....

Ahora me gustaría saber mas o menos como te esta saliendo en el calendario...
segundo, me puedes pegar el PRIMER SQL que genera desde PHP?? ya se que me has dicho que esta bien, pero quiero descartar
Exactamente... Eso es lo que tengo en la base de datos... La segunda fecha (19 de mayo) es el resultado de una suma hecha con mysql... Aqui te pongo todo el codigo:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <style type="text/css">
  4.     td
  5.     {
  6.         width:10%;
  7.         height:20px;
  8.     }
  9. </style>
  10. </head>
  11. <body>
  12. <?php
  13. include("conexion.php");
  14. $con=conectar();
  15. $fecha_actual=date('Y-m-d');
  16. $salto=1;
  17. $num_filas=7;
  18. $dia_num=Date("N",strtotime($fecha_actual));
  19. $mes=Date('m');
  20. $year=Date('Y');
  21. $dias_mes= date('t', mktime(0,0,0, $mes, 1, $year));
  22. $tabla='<table border="1" width="80%" align="center"><tr>';
  23. $tabla.='<thead><tr><th>Domingo</th><th>Lunes</th><th>Martes</th><th>Miercoles</th><th>Jueves</th><th>Viernes</th><th>Sabado</th></tr></thead><tr>';
  24.  
  25. for($i=0;$i<=($dias_mes+$dia_num);$i++)
  26. {
  27.     if ($i>$dia_num){
  28.       $fecha_acum="SELECT fecha,sum(horas) from (SELECT * FROM reporte_horas ORDER BY DAY(fecha)) reporte_horas where DAY(fecha)=".($i-$dia_num)." AND MONTH(fecha)=MONTH(curdate()) AND YEAR(fecha)=YEAR(CURDATE())group by fecha";
  29.       $resultado=mysql_query($fecha_acum,$con);
  30.       $resultado2=mysql_fetch_array($resultado);
  31.           $tabla.="<td>".$resultado2[1]."</td>";
  32.   }else{
  33.     $tabla.="<td>&nbsp;</td>";
  34.   }
  35.   if($salto==$num_filas){
  36.         $tabla.="</tr><tr>";
  37.       $salto=1;
  38.     }else{
  39.     $salto++;
  40.   }        
  41. }
  42. $tabla.="</tr></table>";
  43. echo $tabla;
  44. ?>
  45. </body>
  46. </html>
Me lo esta mostrando de la siguiente manera: el dia 3 (jueves) me lo muestra en la casilla del sabado y el dia 19(sabado) lo muestra en el lunes... Pero lo mas raro es que me lo mostraba bien cuando era sin consulta a base de datos (creo que lo posteaste el viernes).. Muchas gracias
  #29 (permalink)  
Antiguo 09/05/2012, 15:22
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 9 años, 2 meses
Puntos: 45
Respuesta: Calendario con valores en PHP

Hola, estuve investigando un poco, hice lo siguiente...
Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.     <style type="text/css">
  4.         td
  5.         {
  6.             width:10%;
  7.             height:20px;
  8.         }
  9.     </style>
  10.     </head>
  11.     <body>
  12.     <?php
  13.     include("conexion.php");
  14.     $con=conectar();
  15.     $fecha_actual=date('Y-m-d');
  16.     $salto=1;
  17.     $num_filas=7;
  18.    
  19.     $mes=Date('m');
  20.     $year=Date('Y');
  21.     $dia_num=Date("N",strtotime("$year-$mes-1"));
  22.     $dias_mes= date('t', mktime(0,0,0, $mes, 1, $year));
  23.     $tabla='<table border="1" width="80%" align="center"><tr>';
  24.     $tabla.='<thead><tr><th>Lunes</th><th>Martes</th><th>Miercoles</th><th>Jueves</th><th>Viernes</th><th>Sabado</th><th>Domingo</th></tr></thead><tr>';
  25.     for($i=1;$i<=$dias_mes+($dia_num-1);$i++)
  26.     {
  27.         if ($i>=$dia_num){
  28.           $fecha_acum="SELECT fecha,sum(horas) from (SELECT * FROM reporte_horas ORDER BY DAY(fecha)) reporte_horas where DAY(fecha)=".($i-($dia_num-1))." AND MONTH(fecha)=MONTH(curdate()) AND YEAR(fecha)=YEAR(CURDATE())group by fecha";
  29.           $resultado=mysql_query($fecha_acum,$con);
  30.           $resultado2=mysql_fetch_array($resultado);
  31.               $tabla.="<td>".$resultado2[1]."</td>";
  32.       }else{
  33.         $tabla.="<td>&nbsp;</td>";
  34.       }
  35.       if($salto==$num_filas){
  36.             $tabla.="</tr><tr>";
  37.           $salto=1;
  38.         }else{
  39.         $salto++;
  40.       }        
  41.     }
  42.     $tabla.="</tr></table>";
  43.     echo $tabla;
  44.     ?>
  45.     </body>
  46.     </html>
Algunas correciones...

el dia en que inicia el mes lo estaba calculando mal, estuve leyendo y es necesario colocar la fecha con el primer dia del mes, para hallar exactamente cuando inicia

esa fue la mas importante... revisalo
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #30 (permalink)  
Antiguo 09/05/2012, 15:33
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 8 años, 2 meses
Puntos: 9
Respuesta: Calendario con valores en PHP

Lo revise y funciona perfectamente... Eres un genio... Le has dado de comer a los hijos que aun no tengo Muchas gracias hermano... Si supiera como darte karma, lo haria... Muchas gracias por tu ayuda y por tu tiempo

Etiquetas: calendario, 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 16:47.