Foros del Web » Programando para Internet » PHP »

Insertar datos del mes anterior al mes actual

Estas en el tema de Insertar datos del mes anterior al mes actual en el foro de PHP en Foros del Web. Hola... Estoy insertando datos de una BD SQL a una BD MySQL, este proceso lo realizo todos los diaz con una tarea programada de windows, ...
  #1 (permalink)  
Antiguo 21/09/2009, 10:43
 
Fecha de Ingreso: enero-2009
Mensajes: 106
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta Insertar datos del mes anterior al mes actual

Hola...
Estoy insertando datos de una BD SQL a una BD MySQL, este proceso lo realizo todos los diaz con una tarea programada de windows, esto funciona a la perfeccion durante todo el mes, el problema esta que cuando cambio de mes, por ejemplo 31-08-2009 al 01-09-2009 no me inserta ningun dato que haya quedado del mes anterior, me inserta solo los del mes presente osea desde las 00:00:00 en adelante.
Si alguien conoce alguna solucion favor que me ayude.
Aqui dejo el codigo.
Código:
<?php
ini_set('max_execution_time','9000');
ini_set('max_input_time','9000'); 
ini_set('mysql.connect_timeout','9000');
ini_set('memory_limit','1500M');
ini_set('buffering ','0');
?>

<html>
<head>
<title>Recolector Actaris SQL</title>
<?php
include('cnnsql.php');
include('cnn.php');
include('funciones.php');

$mes=date('m');
$ano=date('Y');
$dia=date('d');
$fecha_inicio=$ano."-".$mes."-01 00:00.000";
$fecha_actual=$ano."-".$mes."-".$dia." 23:45.000";

$consulta=mssql_query("SELECT A.DATETIME ,A.IDCLIENT,B.DESCRIPTION,A.NOINS, 
								Sum(CASE WHEN A.IDVAR = 'WhD' THEN A.READVAL ELSE 0 END)
								AS CANAL1,
								Sum(CASE WHEN A.IDVAR = 'WhR' THEN A.READVAL ELSE 0 END)
								AS CANAL2,
								Sum(CASE WHEN A.IDVAR = 'F' THEN A.READVAL ELSE 0 END)
								AS CANAL3,
								Sum(CASE WHEN A.IDVAR = 'VarhD' THEN A.READVAL ELSE 0 END)
								AS CANAL4,
								Sum(CASE WHEN A.IDVAR = 'VArhR' THEN A.READVAL ELSE 0 END)
								AS CANAL5,
								Sum(CASE WHEN A.IDVAR = 'FP' THEN A.READVAL ELSE 0 END)
								AS CANAL6
								FROM READMASS  A, TOPOLOGY B ,CLIENTS C
								WHERE A.DATETIME  BETWEEN '$fecha_inicio' AND '$fecha_actual' 
								AND A.NOINS = B.NOINS
								AND C.USER_DEFINED1 <> 'PUNTO DE VENTA'
								AND A.IDCLIENT = C.IDCLIENT
								AND B.IDINSTYPE='SL7000'
								GROUP BY A.DATETIME,A.IDCLIENT,B.DESCRIPTION,A.NOINS
								ORDER BY B.DESCRIPTION,A.IDCLIENT ,A.DATETIME ASC
					 ");
?>
<?php
 
  while ($row=mssql_fetch_array($consulta)) 
		{
				$nume_fila=$nume_fila+1;
				$medidor=$row["NOINS"];
				$fecha_lect=$row["DATETIME"];
				$descripcion=$row["DESCRIPTION"];
				$id_cliente=$row["IDCLIENT"];
				$identificador=$medidor.'-'.$fecha_lect;
				$fch_b=explode('-',$fecha_lect);
				$diaa=$fch_b[0];
				$mess=$fch_b[1];
				$anoo=$fch_b[2];
				$anoo2=substr ($anoo, -10,4);
				$horaa=substr ($anoo, -5,7);		
				$fecha_base=$anoo2.'-'.$mess.'-'.$diaa.' '.$horaa;
					
					
				$cn1=$row["CANAL1"];
				$cn2=$row["CANAL2"];
				$cn3=$row["CANAL3"];
				$cn4=$row["CANAL4"];	
				$cn5=$row["CANAL5"];
				$cn6=$row["CANAL6"];		
				
				$fechae[$i++]= $fecha_base.','.$cn1.','.$cn2.','.$cn3.','.$cn4.','.$cn5.','.$cn6.','.$anoo2.','.$mess.','.$diaa.','.$horaa.','.$identificador.','.$medidor.','.$descripcion.','.$id_cliente;
					
				$verif=1;
		 } 
		 	
	if($verif==1)
		{
		$fecha_edita=$fecha_lect;
		
		$fch_ed=explode('-',$fecha_edita);
					$diae=$fch_ed[0];
					$mese=$fch_ed[1];
					$anoe=$fch_ed[2];
					$anoo2e=substr ($anoo, -10,4);
					$horae=substr ($anoo, -5,7);
		$fecha_edicion=$anoo2e.'-'.$mese.'-'.$diae.' '.$horae;	
				
		$fecha_edit=date('Y-m-d H:i:s');
			#for ($i = 0; $fechae[$i++]; $i++){
				foreach($fechae as $var => $val) {
			 	$pag_uno=explode(",",$val);
				$fechaer=$pag_uno[0];
				$cn1=$pag_uno[1];
				$cn2=$pag_uno[2];
				$cn3=$pag_uno[3];
				$cn4=$pag_uno[4];
				$cn5=$pag_uno[5];
				$cn6=$pag_uno[6];
				$year=$pag_uno[7];
				$mes=$pag_uno[8];
				$dia=$pag_uno[9];
				$hora=$pag_uno[10];
				$identificador=$pag_uno[11];
				$medidor=$pag_uno[12];
				$descripcion=$pag_uno[13];
				$id_cliente=$pag_uno[14];
			$sql="INSERT INTO datas_six_act(
					identificador,id_prime,descripcion,fecha_lect,chanel1 ,chanel2 ,chanel3 ,chanel4 ,chanel5 ,chanel6 ,yearx, mesx ,diax ,horax,fecha_edit,id_cliente   
					)
			VALUES ('$identificador','$medidor','$descripcion','$fechaer','$cn1','$cn2','$cn3','$cn4','$cn5','$cn6','$year','$mes','$dia','$hora','$fecha_edicion','$id_cliente')";
			mysql_query($sql,$link);
			}
			
		}
echo "Los Datos Se Procesaron Exitosamente...!!";
?>
</body>
</html>
  #2 (permalink)  
Antiguo 21/09/2009, 10:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar datos del mes anterior al mes actual

pues en definitiva, eso se debe a la función date() ya que con ella estas creando la fecha actual...

y esa fecha, es la del mismo sistema... podrías utilizar strtotime() para "regresar" la fecha, un dia por ejemplo
Código PHP:
$mes date('m'strtotime('-1 day')); 
esa es la lógica que estas empleando, suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/09/2009, 06:51
 
Fecha de Ingreso: enero-2009
Mensajes: 106
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Insertar datos del mes anterior al mes actual

Muchas gracias por la respuesta...
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 04:58.