Foros del Web » Programando para Internet » PHP »

Recorrer fechas a partir de dos dadas e insertar registros

Estas en el tema de Recorrer fechas a partir de dos dadas e insertar registros en el foro de PHP en Foros del Web. Buenos días, ante todo muchas gracias por la ayuda. Mi problema es el siguiente: A partir de dos fechas dadas, necesito ingresar un registro en ...
  #1 (permalink)  
Antiguo 25/03/2013, 05:14
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años
Puntos: 3
Recorrer fechas a partir de dos dadas e insertar registros

Buenos días,

ante todo muchas gracias por la ayuda. Mi problema es el siguiente: A partir de dos fechas dadas, necesito ingresar un registro en mi base de datos por cada uno de los días que hay entre esas fechas.

En primer lugar paso las fechas a formato timestamp() y después a través de un bucle for quiero que me ejecute una consulta de inserción de datos por cada una de las fechas que hay entre los días dados. El bucle for lo hace, me inserta tantos registros como quiero, pero todos ellos con la última fecha.

Os dejo el código:

Código PHP:
    $fecha_inicio=strtotime($fechainicio);
    
$fecha_fin=strtotime($fechafin);
 
    for(
$i=$fecha_inicio$i<=$fecha_fin$i+=86400){
    
$fecha date("Y-m-d"$i);
    
       
            
$query="INSERT INTO trabajos (indi, grupo, ot, proyecto, ";
            
$query.=" f_inicio, f_fin, f_reporte, semana, descripcion, cantidad, escalado,escaladoK25,";
            
$query.="descripcionescalado, tiempo_real, preciototal,preciototalK25,pago_actuacion, nocturna, comentarios, ";
            
$query.="status_idstatus, descripcionstatus,idactiv_tall, ";
            
$query.="consultores_Ident_consultor, pagohoras, horas)";
            
$query.=" VALUES('$indi', '$grupo', '$ot', '$proyect', '$fecha', '$fecha', '$fecha_actual', '$semana','$descripcion','$cantidad', '$escalado', '$escaladoK25','$descripcionescalado','$tiemporeal', '$preciototal', '$precioK25',  '$pagoact', '$nocturn', '$comentarios','$statu','$descripcionstatus', '$actividad', '$usuario_actual', '$pagohora', '$horas');";
echo 
$query;
                
$consulta = new Consulta($query);
        if(!
$consulta) {
            throw new 
Exception('Error al insertar el Trabajo');
        }
                
$idtrab$consulta->ultimo_identificador();
             
       
}
return 
$idtrab
Muchas gracias de nuevo!
  #2 (permalink)  
Antiguo 25/03/2013, 07:26
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Recorrer fechas a partir de dos dadas e insertar registros

Este tema de fechas siempre me gustaron.. la verdad en código no se me ocurre nada por el momento, pero en teoría, creo que debieras buscar la manera de obtener exactamente las fechas que requieres.. es decir... quieres las fechas entre MARZO 3 de 2013 y MARZO 7 DE 2013, ver la manera de insertarlo en una array

$fecha[0]= MARZO 4 DE 2103
$fecha[1]= MARZO 5 DE 2103
$fecha[2]= MARZO 6 DE 2103

y con un bucle ir insertando en la BD con el where o condicion respectiva.. WHERE fecha=MARZO 4 DE 2103'' si tuviera más tiempo en la ofi creo que te ayudaría más... saludos mi amigo
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 25/03/2013, 07:53
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Recorrer fechas a partir de dos dadas e insertar registros

El recorrido de tu for está bien, aunque aumentar 86400 segundos no es del todo seguro si requieres precisión a nivel de horas, si hubiera un cambio de horario entre las fechas.

Pero regresando a tu post, yo creo que el problema es que tanto en f_inicio como en f_fin guardas el mismo valor: $fecha
  #4 (permalink)  
Antiguo 25/03/2013, 09:25
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Recorrer fechas a partir de dos dadas e insertar registros

Holas!

Como tip, cuando no obtienes lo que quieres, es bueno hacer depuración con unos print dentro del bucle, de modo de ver (en tiempo de desarrollo) qué es lo que realmente se está guardando en las variables por cada iteración del ciclo.

Ahora, colgándome un poco de lo que dice ocp001a, prueba además a cambiar el tipo de ciclo, que en vez de ir sumando segundos, armes la fecha sumando 1 día con la función mktime().

Código PHP:
$fecha_inicio strtotime($fechainicio);
$fecha_fin strtotime($fechafin); 

$fecha $fecha_inicio;

while (
$fecha $fecha_fin)
{
 
// aca iría una depuración:
 
print "<br/>\n[fecha] ".$fecha;

 
// acá el resto del código....
 
$query "INSERT......".date("Y-m-d"$fecha);
 
 
// más depuración:
 
print "\n[query] ".$query;

 
// y acá el incremento:
 
$fecha mktime(0,0,0,date("m"$fecha)+0,date("d",$fecha)+1,date("Y"$fecha)+0);

Es una alternativa. Suerte!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*

Etiquetas: registro, registros
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 17:56.