NECESITO MAS AYUDA
EN EL ANTERIOR MENSAJE INCLUI UN CODIGO QUE NO ES CORRECTO Y LO HE CORREGIDO:
$annio=$_POST[\'anio\'];
for ($i=1;$i<13;$i++){
$sql="Select sum(t_presupuestos_7_1.ingresos) as ingresos , sum(t_presupuestos_7_1.ocupacion) as ocupacion from t_presupuestos_7_1 where mes=".$i." and anio=".$annio." and (";
for($j=0;$j<count($arestablecimientos);$j++)
{
if ($j!=(count($arestablecimientos)-1)){
//la linea de error:
$sql=$sql."idestablecimiento=".$arestablecimientos[$j]." or ";
}else{
$sql=$sql."idestablecimiento=".$arestablecimientos[$j].")";
}
$datos=mysql_query($sql);
$rdatos=@mysql_fetch_array($datos);
echo "<td align=\'right\'>".number_format(@(($rdatos[\'ingresos\']/$rdatos[\'ocupacion\'])),2,\',\',\'.\')."</td>";
//del for
}
}
CON ESTO ME CALCULA BIEN LA CIFRA DE PRESUPUESTOS SIEMPRE QUE LA CUENTA DE ESTABLECIMIENTOS SEA 1, PERO EN EL MOMENTO QUE SUPERA ESA CIFRA ME INCLUYE TANTOS 0,00 COMO ESTABLECIMIENTOS PONGA SEGUIDOS DEL VALOR AUTENTICO.
POR FAVOR AYUDA
$annio=$_POST[\'anio\'];
for ($i=1;$i<13;$i++){
$sql="Select sum(t_presupuestos_7_1.ingresos) as ingresos , sum(t_presupuestos_7_1.ocupacion) as ocupacion from t_presupuestos_7_1 where mes=".$i." and anio=".$annio." and (";
for($j=0;$j<count($arestablecimientos);$j++)
{
if ($j!=(count($arestablecimientos)-1)){
//la linea de error:
$sql=$sql."idestablecimiento=".$arestablecimientos[$j]." or ";
}else{
$sql=$sql."idestablecimiento=".$arestablecimientos[$j].")";
}
$datos=mysql_query($sql);
$rdatos=@mysql_fetch_array($datos);
echo "<td align=\'right\'>".number_format(@(($rdatos[\'ingresos\']/$rdatos[\'ocupacion\'])),2,\',\',\'.\')."</td>";
//del for
}
}
CON ESTO ME CALCULA BIEN LA CIFRA DE PRESUPUESTOS SIEMPRE QUE LA CUENTA DE ESTABLECIMIENTOS SEA 1, PERO EN EL MOMENTO QUE SUPERA ESA CIFRA ME INCLUYE TANTOS 0,00 COMO ESTABLECIMIENTOS PONGA SEGUIDOS DEL VALOR AUTENTICO.
POR FAVOR AYUDA
Hola, la verdad es que no entiendo muy bien el código (qué es lo que hace, qué devuelve, qué contiene $arestablecimientos y cómo está armado —tiene pinta de array—, etc), pero acá veo algo raro:
if ($j!=(count($arestablecimientos)-1)){
//la linea de error:
$sql=$sql."idestablecimiento=".$arestablecimientos[$j]." or ";
}else{
$sql=$sql."idestablecimiento=".$arestablecimientos[$j].")";
}
Estás diciendo que si se cumple una condición, agregue a $sql una lÃnea; y SI NO no se cumple, que agregue la otra.
Si se cumple la condición, va a agregar: "idestablecimiento=".$arestablecimiento[$j]." or ";
Fijate en "or": ¿o qué?. ¿Ves lo que digo? El resultado de la consulta va a ser algo asÃ:
"Select sum(t_presupuestos_7_1.ingresos) as ingresos , sum(t_presupuestos_7_1.ocupacion) as ocupacion from t_presupuestos_7_1 where mes=10 and anio=2005 and ( idestablecimiento=".$arestablecimientos[$j]." or ";
Si no se cumple la condición, el resultado va a ser el mismo, salvo por el "or". No sé qué función cumple el "or", pero tal vez te hayas olvidado de algo o esté de más. Ahora, si está de más, el if..else no tiene mayor sentido, ya que en cualquier caso (si se cumple la condifión [if] o si no se cumple [else]) estarÃa agregando lo mismo a la variable $sql.
Bueno, no sé si te servirá, espero que en una de esas te dé una pista.
Suerte.
if ($j!=(count($arestablecimientos)-1)){
//la linea de error:
$sql=$sql."idestablecimiento=".$arestablecimientos[$j]." or ";
}else{
$sql=$sql."idestablecimiento=".$arestablecimientos[$j].")";
}
Estás diciendo que si se cumple una condición, agregue a $sql una lÃnea; y SI NO no se cumple, que agregue la otra.
Si se cumple la condición, va a agregar: "idestablecimiento=".$arestablecimiento[$j]." or ";
Fijate en "or": ¿o qué?. ¿Ves lo que digo? El resultado de la consulta va a ser algo asÃ:
"Select sum(t_presupuestos_7_1.ingresos) as ingresos , sum(t_presupuestos_7_1.ocupacion) as ocupacion from t_presupuestos_7_1 where mes=10 and anio=2005 and ( idestablecimiento=".$arestablecimientos[$j]." or ";
Si no se cumple la condición, el resultado va a ser el mismo, salvo por el "or". No sé qué función cumple el "or", pero tal vez te hayas olvidado de algo o esté de más. Ahora, si está de más, el if..else no tiene mayor sentido, ya que en cualquier caso (si se cumple la condifión [if] o si no se cumple [else]) estarÃa agregando lo mismo a la variable $sql.
Bueno, no sé si te servirá, espero que en una de esas te dé una pista.
Suerte.
