2012-06-20 18 views
0

我創建了一個表單,其中包含用於接受浮動值作爲輸入的字段。我的目標是能夠將這些值存儲在數據庫中,並在以後使用它們。到目前爲止我嘗試過的所有事情都導致了失敗。如何接受html表單中的浮點值並將其發送給MySQL DB

我曾嘗試將輸入字段類型從文本更改爲數字,浮點數和小步長的偶數。看來,當我用php請求域的值,然後發送給我的數據庫時,出現了一些錯誤,並且只存儲了最接近的整數。想法?

我的表單代碼:

<form name ="chemAdd" action="submitChemData.php" method="POST" id="chemData"> 

       <fieldset> 
       <legend>Chemical Information</legend> 
       <label for="chemName">Chemical Name:</label> 
       <input type="text" name="chemName" /> 

       <label for="chemFormula">Molecular Formula:</label> 
       <input type="text" name="chemFormula" /> 
       </fieldset> 
       <br /> 

       <fieldset> 
       <legend>Antoine Constants</legend> 
       <label for="A">A:</label> 
       <input type="number" name="A" size="10" min="0" max="9999" step="0.00000001" /> 

       <label for="B">B:</label> 
       <input type="float" name="B" size="10"/> 

       <label for="C">C:</label> 
       <input type="text" name="C" size="10"/> 

       <br /><br /> 

       <label for="unitT">Unit (Temperature):</label> 
        <select name="unitT" > 
         <option value="K">Kelvin</option> 
         <option value="C">Celcius</option> 
         <option value="F">Fahrenheit</option> 
        </select> 

       <label for="unitP">Unit (Pressure):</label> 
        <select name="unitP" > 
         <option value="P">Pascal</option> 
         <option value="Hg">mm Hg</option> 
         <option value="bar">bar</option> 
        </select> 

       </fieldset> 
       <br /> 
       <fieldset> 
       <legend>Reference Information</legend> 
       <label for="Tmin">Temp. Minimum:</label> 
       <input type="float" name="Tmin" size="10"/> 

       <label for="Tmax">Temp. Maximum:</label> 
       <input type="float" name="Tmax" size="10"/> 
       <br /><br /> 
       <label for="Reference">Reference:</label> 
       <input type="text" name="Reference" size="60"/> 

       </fieldset> 
       <br /> 
       <input type="submit" value="Add to Database" id="submit" />  

       </form> 
      </form> 

我的PHP代碼:

require_once 'dbConnectChem.php'; 


$name = trim(strtoupper($_REQUEST['chemName'])); 
$formula= trim(strtoupper($_REQUEST['chemFormula'])); 
$A = $_REQUEST['A']; 
$B = $_REQUEST['B']; 
$C = $_REQUEST['C']; 
$unitT = $_REQUEST['unitT']; 
$unitP = $_REQUEST['unitP']; 
$Tmin = $_REQUEST['Tmin']; 
$Tmax = $_REQUEST['Tmax']; 
$Reference = $_REQUEST['Reference']; 


//INSERT Query 
mysql_query("INSERT INTO Antoine (Name,Formula,A,B,C,unit_T,unit_P,Tmin,Tmax,Reference) VALUES ('{$name}','{$formula}','{$A}','{$B}','{$C}','{$unitT}','{$unitP}','{$Tmin}','{$Tmax}','{$Reference}') ") 
    or die(mysql_error()); 
+1

的問題可能不是輸入字段,但你怎麼把它寫做D B。你能提供一些代碼示例嗎? –

+1

而且我們還需要您的表格結構。 – nickb

+0

發表一些代碼和示例數據,我們無法幫助你,否則,並通過發佈這種方式,你是違背本網站的服務條款... –

回答

1

使用十進制數據類型,而不是浮動。如this link中所述,有時浮點值會導致問題,而Decimal正常工作。

使用它像這樣:

CREATE TABLE t1 (i INT, d1 DECIMAL(9,2), d2 DECIMAL(9,2)); 

這裏9是精度,2是scale.Change它相應

+0

這工作很好。謝謝你的鏈接。 –

+0

好極了,所以如果能解決你的問題,你可以得到答案。 :) –

相關問題