2013-04-25 193 views
0

我知道這聽起來很簡單,它可能只是我缺少的東西,但這裏是發生了什麼。我有兩個變量需要分開,然後乘以另一個變量。這兩個變量四分五裂出來的完美的,但是當我乘上總和下一個變量它出來可怕的錯誤(至少對我來說)乘法和除法變量

$horiFOV = 20; 
$distObj = 35; 

$sensorWidth = mysql_query("SELECT camlist.width FROM camlist WHERE camlist.camera = '$camSelect'"); 

$lensCalc = $distObj/$horiFOV; 
$lensCalcA = $lensCalc * $sensorWidth; 

我分裂他們喜歡這個,所以我可以呼應的結果。此外,MySQL的查詢結果爲4.80 但是,所有這一切的結果出現在12.25,它應該出現到8.4。

請注意,這些都是基於我在網上重新創建的Excel電子表格。

+1

把一些實際值並顯示預期和觀察結果的計算 - 「可怕的錯誤」並不真的有幫助... – raidenace 2013-04-25 20:07:54

+1

1.您的代碼無效。這不是你如何運行查詢並獲得結果。 2.不要使用mysql_ *作爲新代碼。已經過時了。 – 2013-04-25 20:08:30

+0

'$ sensorWidth'變量的輸出是什麼?如果你手動設置爲4.80,那麼一切正常。問題是你的輸出。並聽取約翰的話。 – 2013-04-25 20:09:55

回答

2

這個替換您$ sensorWidth =請求mysql_query()行:

$result = mysql_query("SELECT camlist.width FROM camlist WHERE camlist.camera = '$camSelect'"); 
$row = mysql_fetch_assoc($result); 
$sensorWidth = $row['width']; 

你不能在一個MySQL結果資源進行數學運算。

+0

非常感謝!這工作完美。再次感謝。 – 2013-04-25 20:18:42

0

您從查詢中提取的$sensorWidth值可能無法正確拉取。一旦它被拉下來,嘗試添加該行:

$sensorWidth = floatVal($sensorWidth); 

在你嘗試和它做數學之前。

這是假設正在從數據庫中拉出正確的數字。

0
$result = mysql_query("SELECT camlist.width FROM camlist WHERE camlist.camera = '$camSelect'"); 
$row=mysql_fetch_array($result); 
$sensorWidth=floatval($row["width"]);//as mbsurfer suggested 

$lensCalc = $distObj/$horiFOV; 
$lensCalcA = $lensCalc * $sensorWidth; 

併爲未來的不使用mysql_*他們正在貶值,不再維護和支持,而不是有兩個可供選擇的擴展:pdomysqli詳細信息:http://news.php.net/php.internals/53799

+0

我知道mysqli_已經接管了,但我還沒有升級到php5。將盡快完成並相應地修復代碼。非常感謝你和@Michael – 2013-04-25 20:19:24