Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/07/2010, 13:09
Avatar de roxhp
roxhp
 
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 14 años
Puntos: 3
Respuesta: problema con fechas y totales

Hola:

Perdon esa linea no la tomes el atributo month toma el mes como numerico y ya no hace falta justificar el mes a 2 digitos, si se hiciera la comparacion con like o con una comparacion de cadenas se necesitaria justificar el mes a 2 digitos.

por ejemplo si tienes el mes de abril y kisieras armar tu fecha de inicio y tu fecha final quedaria asi.

mes_inicio="04" (es el mes actual)
mes_final=3 (es el mes actual -1) al restarle uno al mes actual te da un resultado entero de 1 solo digito si es menor de 10
anio_final=2010 (año actual)
anio_inicio=2009 (año actual -1)

asi que la fecha final seria '2010-3-%' y la fecha de inicio '2009-04-%' lo cual en ciertos casos marca error dependiendo del tipo de campo en que tienes almacenada tu fecha o el tipo de comparacion, eso es solo para prevenir, hay casos en que las fechas no las guardan precisamente en campos de tipo date sino en campos varchar, de ahi que el valor se maneje como una cadena.


Código PHP:

//aqui para obtener la sumatoria debes de modificar la consulta para facilitar la obtencion de estos datos
$sql="select mont(fecha_despacho) as mes, year(fecha_despacho) as anio, cantidad_aprobada from movimiento, egresos where id in ( select id from egresos where (mont(fecha_despacho)>=$mes_inicio and mont(fecha_despacho)<=$mes_final) and (year(fecha_despacho)>=$anio_inicio and year(fecha_despacho)<=anio_final) ) and movimiento.id=egresos.id order by anio, mes;";

...
$fecha[$i]="";
while(
$r=pg_fetch_assoc($res)) 
{
     
$f=$r["anio"]."-".$r["mes"];

// se crea un arreglo de fechas que contendra el dato año-mes que servira de indice a el arreglo de las cantidades este paso te lo puedes saltar obteniendo el valor del indice con un foreach a la hora de usar los datos
     
if($fecha[$i]=""
        
$fecha[$i]=$f;

     if(
$fecha[$i]!=$f)
    {   
$i++;
         
$fecha[$i]=$f;
    }

// aqui se van sumando las cantidades aprobadas del mismo mes y año y se meten en un array con esa fecha como indice.
    
$cant_apro[$f]=$cant_apro[$f]+$r["cantidad_aprobada"]; 


Espero y esto te sea de utilidad no habia entendido muy bien que querias con el array. :P

Suerte ya de ahi es cuestion de que te pongas a jugar con el array