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
}