Lo que debes hacer despues de tu consulta es crear un bucle que a su vez cree un array para que meta las operaciones en este luego cierras el bucle y todo queda como estaba, eso es todo lo que había que hacer:
Código PHP:
<?php
// esta función se encargará de resolver las operaciones que se le pasen de estilo 24*3+2/8-5 (cadena)
// donde $cu_op es cual operacion deseamos realizar
function realiza_operacion ( $cu_op )
{
$operacion = $cu_op; // definimos una variable $operacion que contendrá como valor la operación que le pasamos a la función
$pos = 0; // esta variable es la posición desde donde vamos a comparar, es decir desde el principio
if ( !is_int ( $operacion ) ) // si no es un número entero es decir, un número sólo como 50 hacemos las operaciones
{ // recorremos cada caracter de la variable $operacion para detectar que operaciones realizar (algo así como recorrer letra por letra)
for ( $y = 0; $y < strlen ( $operacion ); $y++ )
{
$operaciones = array ( '+', '-', '*', '/' ); // definimos un array con las operaciones validas suma, resta, ...
for ( $x = 0 ; $x < count ( $operaciones ); $x++ )
{
if ( substr ( $operacion, $pos, 1 ) == $operaciones[$x] ) // comparamos si el caracter es igual a una operacion de ser así lo guardamos en un array
{
// si encontro una operación guardamos su posicion y la operacion separados por coma
$op[] = $pos.",".substr ( $operacion, $pos, 1 );
}
}
$pos += 1; // aumentamos una unidad a la posición para comparar el siguiente carácter
}
$contador = 1; // nos indicará cuantas operaciones ya hemos realizado
// Esta variable nos servirá para ir sumando los resultados después de realizar una operacion ya que no las hará todas de un sólo jalon
// se irán resolviendo por pares ejemplo 5+2-1/2 primero resolverá 5+2 y luego la variable acumula contendrá ahora 7 a esto le restaremos
// 1 y acumula contendrá ahora 6 luego se dividirá entre 2 y finalmente acumula contendrá 3
$acumula = 0;
for ( $e = 0; $e < count ($op); $e++ ) // realizamos un bucle que se repetirá tantas veces como operaciones tengamos
{ // con esto dividimos el contenido del array $op[$e] ya que si recordamos guardamos su posicion y la operacion separados por coma
$divide = explode ( ",", $op[$e] );
// ahora el array $divide[0] será la posición del símbolo de la operación a realizar
// y $divide[1] será el símbolo de la operación ( "+" por decir un ejemplo )
if ( $e != count ( $op ) - 1 ) // si aún no es la última operación
{
$siguiente = explode ( ",", $op[$e + 1] );
// obtenemos la posición de la siguiente operación para así realizar la anterior, me explico, si tenemos esta operación 5+2-3
// vamos a realizar primero 5+2 pero para poder realizarlo debemos saber que posición ocupa la siguiente operacion en este caso
// el símbolo de la sig. operación se encuentra en la posición 4 (-)
$sig_operacion = $siguiente[0] + 1;
}
else // si es la última operación a realizar
{
$sig_operacion = strlen ( $operacion ) - ( $divide[0] + 1 ); // obtenemos la cadena restante
}
if ( $contador == 1 ) // es la primera operación a realizar
{
$calcula[] = substr ( $operacion, 0, $divide[0] ); // obtenemos el primer número para la operacion en el ejemplo de 5+2 obtendríamos 5
$calcula[] = substr ( $operacion, $divide[0] + 1, $sig_operacion ); // obtenemos el segundo num. para la operación en el ej. sería 2
switch ( $divide[1] ) // hacemos la operación correspondiente recuerda que $divide[1] es el simbolo "+" en el caso de nuestro ejemplo
{
case '+': // si $divide[1] contiene el símbolo + realizaremos una suma
$resultado = $calcula[0] + $calcula[1];
break;
case '-': // si $divide[1] contiene el símbolo - realizaremos una resta
$resultado = $calcula[0] - $calcula[1];
break;
case '*': // si $divide[1] contiene el símbolo * realizaremos una multiplicación
$resultado = $calcula[0] * $calcula[1];
break;
case '/': // si $divide[1] contiene el símbolo / realizaremos una división
$resultado = $calcula[0] / $calcula[1];
break;
default: // si $divide[1] no contiene ninguno de los símbolos mandamos un mensaje
echo '<p>No es una operación valida.</p>';
break;
}
$acumula = $resultado; // le pasamos el resultado a acumula
$contador += 1; // sumamos una unidad a la variable $contador para indicar que ya se hizo la primera operación
}
else // si es más de una operación a realizar
{
$calcula = substr ( $operacion, $divide[0] + 1, $sig_operacion ); // obtenemos el sig. número con el que realizar la operación
switch ( $divide[1] ) // hacemos la siguiente operación (- en caso de nuestro ejemplo) con el resultado acumulado y el sig. número ( 3 en el ejemplo )
{
case '+':
$resultado = $acumula + $calcula;
break;
case '-':
$resultado = $acumula - $calcula;
break;
case '*':
$resultado = $acumula * $calcula;
break;
case '/':
$resultado = $acumula / $calcula;
break;
default:
echo '<p>No es una operación valida.</p>';
break;
}
$acumula = $resultado;
}
}
$operacion = $acumula; // le asignamos a la variable $operación el resultado final
return $operacion;
}
else // si es un número entero sólo lo pasamos así (No realizamos ninguna operación)
{
return $operacion;
}
}
// supongo que $sqlcon es la consulta y $dbi es la conexion que serían unas líneas como esta
// $dbi = mysql_pconnect ( 'servername', 'username', 'password' );
// mysql_select_bd ( 'basededatos' );
// $sqlcon = "SELECT campos FROM tabla WHERE condiciones";
$resucon = mysql_query ( $sqlcon, $dbi );
while ( $filacon = mysql_fetch_array ( $resucon ) )
{
// $formula son las operaciones a realizar, mejor definela como un array para que así se te
// agreguen solitas sin necesidad de ponerlas a mano así
$operaciones[] = $filacon["for_id"];
// con $operaciones[] definimos $operaciones como un array y en cada iteración del bucle while
// se irán agregando las operaciones dentro de este array
}
$acum_total = 0; // esta variable servirá para hacer la suma de todos los resultados de las operaciones que estaban en el array $operaciones[]
for ( $t = 0; $t < count ( $operaciones ); $t++ )
{ // le pasamos la operación a realizar a la función realiza_operacion() y el resultado se almacenará en la variable $op_resuelta
$op_resuelta = realiza_operacion ( $operaciones[$t] );
echo "El resultado de la operación ".$operaciones[$t]." es: ".$op_resuelta."<br/>"; // mostramos en pantalla la operación que se hizo y su resultado
$acum_total += $op_resuelta; // le sumamos el resultado de la operación a la variable $acum_total
}
echo "<p>La suma total de todas las operaciones es: ".$acum_total;
?>
Nota: dejo el código con comentarios para que entiendas tú y todo el que lo lea que es lo que va haciendo el código. Espero que con esto ya se entienda mejor que es lo que fui haciendo.
Suerte