Solved

# How to use a formula stored in mysql, eks: (A + B + C)/(E + F)

Posted on 2006-11-04

How to use several formulas stored in a db?

I have several formulas, it's basic math operations, (AB + AC + AD + AE)/7 etc, the AB' is data has to replaced by values stored in different tables.

I tried to set a rule that each value has to be stored with a space and then split the function up in to a array and the use a loop and then create something like the c++ postfix expression and get the end value,

maybe this can be done easier? I don't like that the formula has to be entered with spaces, it could easily become problem.. I guess that the space thing can be solved by parsing it with regular expressions,

I have tried a bit, here's the start of that code:

sample Formula:( ( A1 + A2 ) + A3 + A4 + A5 + A6 + A7 )

$seperators = array('A1', 'A2','A3','A4','A5','A6', 'A7');

//just replacing the string with a sample number: 1

$str = str_replace($seperators,'1',$str);

$str = (preg_split('# #',$str));

for($i=0; $i<count($str); $i++){

if( $str[$i] == '+' || $str[$i] == '-' || $str[$i] == '*' || $str[$i] == '/' ){

//do something

}else if( $str[$i] == ')' ){

//do something

}else

//do something

}