2013-04-25 81 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