2013-03-05 23 views
1

我从用户输入3个值。我想根据表格栏中的公式来计算。我打印了公式,但我想根据公式进行计算。我正在使用PHP和MySQL。 请帮我指导一下如何通过这种方式实现它?为什么它不按照表中的公式计算?

HTML代码:

<form action="testcalc1.php" method="post"> 
Size 1: <input type="text" name="size1" /><br><br> 
Size 2: <input type="text" name="size2" /><br><br> 
Quantity: <input type="text" name="quanity" /><br><br> 
<input type="submit" /> 
</form> 

PHP代码:

$s1 = $_POST['size1']; 
    $s2 = $_POST['size2']; 
    $s3 = $_POST['size2']; 

    $rec= mysql_query("SELECT unit_cost FROM mat WHERE mat_name='ball'") or die(mysql_error()); 

    $s5 = mysql_fetch_assoc($rec); 
    $s4 = $s5['unit_cost']; 

    echo $s4; 

垫表:

MAT_NAME || unit_cost

ball || $ S1 * $ S2 * $ S3

输出什么,我现在得到它是:: $ S1 * $ S2 * $ S3

+0

你如何将记录插入表中?你可以展示那部分吗? – 2013-03-05 20:28:51

+1

你需要评估你的'$ s4'表达式:http://php.net/manual/en/function.eval.php。但是,我绝对不会这样做,没有消毒的用户输入。 – jeroen 2013-03-05 20:31:43

+0

现在我直接通过mysql phpmyadmin页面插入记录。 – 2013-03-05 20:31:57

回答

2

应该

eval('$s4='.$s5['unit_cost'].';'); 

$s4=eval('return '.$s5['unit_cost'].';'); 

但是,您不应该使用mysql_*函数(使用mysqli_*PDO),并且如果您没有使用eval(),则在eval()中使用$_POST变量是不安全的如果他们真的是数字,那么他们。

+0

我想你也suggeste我做,但我得到了一个错误 解析错误:语法错误,在C $意外结束:\ WAMP \ WWW \测试\ testcalc1.php(24):eval()函数” d代码在线1 和你建议我的是24行号。 – 2013-03-05 20:42:44

+0

对不起......看到编辑版本 - 最后的分号应该没问题。 – Voitcus 2013-03-05 20:45:27

+0

我试过编辑后的版本,没有错误,但页面上没有任何内容。 – 2013-03-05 20:48:13