Hola: tengo el siguiente codigo, en el que ya me han ayudado por aqui!!
Les cuento, hago un select
$sql="SELECT for_id FROM hbr_conceptos WHERE con_id='1'";
$resusql=mysql_query($sql,$dbi);
$filasql=mysql_fetch_array($resusql);
$operacion=$filasql["for_id"];
Donde $operacion es un calculo que no se cuantos terminos puede tener, por ejemplo 400+120+20 o 30*2+8
alguien me ayudo para resolver las ecuaciones y lo hace perfecto, yo le agregue un while y un acumulador para que siga recorriendo y haciendo las distintas operaciones, pero definitivamente no me funciona...por que??
if ( !is_int ( $operacion ) )
{
$operaciones = array ( '+', '-', '*', '/' );
for ( $e = 0; $e < count ( $operaciones ); $e++ )
{
if ( strpos ( $operacion, $operaciones[$e] ) )
{
$posicion = strpos ( $operacion, $operaciones[$e] );
break;
}
else
{
continue;
}
}
}
$cual_operacion = substr ( $operacion, $posicion, 1 );
$calcula = explode ( $cual_operacion, $operacion );
while ($cual_operacion!= ' ')
{
switch ( $cual_operacion )
{
case "*": $resultado= $calcula[0] * $calcula[1];
break;
case "+": $resultado= $calcula[0] + $calcula[1];
break;
case "-": $resultado= $calcula[0] - $calcula[1];
break;
case "/": $resultado= $calcula[0] / $calcula[1];
break;
}
echo $resultado;
$acumula=($acumula+$resultado);
}
echo $acumula;
Se supone que mientras haya algo en $cual_operacion, ya sea + ,- / o *, tiene que entrar en el switch.
No me tira el error correspondiente como ayuda, directamente se queda cargando infinitamente.
Ayudas??
Gracias! un beso!