• ¿Quieres apoyar a nuestro foro haciendo una donación?, entra aquí.

Consulta Array Fetch Php / Logic Mistake

Michimalonko

Pendejit@
Registrado
2004/11/28
Mensajes
107
Hola, tengo un problema de logica, necesito hacer lo siguente:

Tengo meses de enero a diciembre el cual dentro de cada mes quiero sumar una determinada cantidad segun los diametros dentro del mes que son 10 osea

Enero: diam1+diam2+diam3+........ Total.
Febrero: diam1+diam2+diam3........ Total.

Y asi hasta que me de el total de cada mes y mostrarlo en un grafico como este:

6455679wall.jpg


Resulta que me muestra el mismo total para todos los meses, creo que tengo un problema con el ciclo while, pero no lo encuentro.

Aqui va el codigo:

Código:
while($meses = pg_fetch_array($rscategoria)) 
{ 
$categories.= "<category label='".$meses['mes']."' />"; 

while($diametro = pg_fetch_array($rsdiametro) ) 
{ 
//Seleccionamos RANGO 

$sqlrango = ""; 
$sqlrango .= " select * from t_diametros"; 
$sqlrango .= " WHERE diametro='".$diametro['diametro']."'"; 
$rangoini = pg_query($sqlrango); 
$t_rango = pg_fetch_array($rangoini); 
$objetivo_ini = $t_rango['objetivo_ini']; 
$objetivo_term = $t_rango['objetivo_term']; 
$objetivo_a = $objetivo_ini - $parametro; 
$objetivo_b = $objetivo_term + $parametro;   



$sqlTotalCantidad = ""; 
$sqlTotalCantidad.= " SELECT sum(cantidad) as cantidad_total FROM t_control_diametrico"; 
$sqlTotalCantidad.= " WHERE agno='".$agno."' AND calidad='".$calidad."' AND  mes='".$meses['mes']."'"; 
$sqlTotalCantidad.= "AND diametro='".$diametro['diametro']."' AND metros='".$metros."'"; 
/*$sqlTotalCantidad.= "AND rango_ini>='".$objetivo_a."' AND rango_ini<='".$objetivo_b."'";*/ 
$rsTotalCantidad = pg_query($sqlTotalCantidad); 
$t_cantidad_total = pg_fetch_array($rsTotalCantidad); 
$cantidad_total = $t_cantidad_total['cantidad_total']; 
$suma_cantidad = $suma_cantidad + $cantidad_total; 

$sqlTotalmes = ""; 
$sqlTotalmes.= " SELECT sum(cantidad) as cantidad_total_mes FROM t_control_diametrico"; 
$sqlTotalmes.= " WHERE agno='".$agno."' AND calidad='".$calidad."'";  
$sqlTotalmes.="AND diametro='".$diametro['diametro']."' and metros='".$metros."' AND mes='".$meses['mes']."'"; 
$rsTotalmes = pg_query($sqlTotalmes); 
$t_cantidad_total_mes = pg_fetch_array($rsTotalmes); 
$cantidad_total_mes = $t_cantidad_total_mes['cantidad_total_mes']; 


} 


$dataset1.= "<set toolText='' value='".$suma_cantidad."' />"; 
$porcentaje.= ($suma_cantidad * 100) / $suma_totalmes; 
$dataset2.= "<set toolText='' value='".round($porcentaje, 2)."'/>"; 


$tabla.='<tr>'; 
$tabla.='<td align="center" class="loginbox5" class="fila">'.$meses["mes"].'</td>'; 
$tabla.='<td align="center" class="loginbox5" class="fila">'.$suma_cantidad.'</td>'; 
$tabla.='<td align="center" class="loginbox5" class="fila">'.round($porcentaje, 2).'% del mes.</td>'; 
$tabla.='</tr>'; 



}

Espero haberme explicado bien...y que me ayuden gracias.
 
coloca a cada variable un nombre distinto en el name ya que si tiene todo el mismo nombre te va tomar una variable solamente y te va dar el primeto o ultimo total..
 
no tay limpiando las variables que suman los totales en cada while, ademas pa q cresta teni 2 veces la misma consulta SQL?
 
Amigo, póngale los comentarios sobre qué se espera que haga cada instrucción o bloque de código, porque la verdad no entiendo varias cosas de tu código por lo que se me hace difícil ayudarte.

Saludos
 
Volver
Arriba