2013-03-05 46 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