2012-07-21 78 views
1

我做一个数组的计算是从MySQL的画,问题是“被零除”警告警告:除零工作PHP和MySQL

我在这个statment运行的循环

$v = (($v - $valuei)/($valuei) * 100); 

这里$ v正在改变(假设从100到150例如100,101,102,103,...,150)并且$ valuei是$ v的初始值(即100)所以,当计算将开始第一个输出应为零,我想这个零,那么为什么它会给出一个警告“除以分区”,并使所有的“$ v”值等于零。

+2

显示循环的完整代码 – madfriend 2012-07-21 13:33:06

+1

为什么地球上乘以数字字符串?我的意思是,无论如何它肯定会起作用......但是为什么? – Dan 2012-07-21 13:37:02

+0

整数太主流了我猜:) – Mahn 2012-07-21 13:41:21

回答

3

该警告表明,在其中一次运行中,$ valuei实际上为0。

您确定,$ valuei是否已正确初始化? 为了摆脱的警告,你应该增加这样做:

if($valuei != 0) { 
    $v = (($v - $valuei)/($valuei) * '100'); 
} 

这样,警告应该消失。

+0

谢谢安东尼! 你是对的,错误是由于$ valuei本身的O值..... 现在一切正常工作...... – Leo 2012-07-21 13:51:12

+0

你非常欢迎。我总是很乐意提供帮助。 :) – ATaylor 2012-07-21 15:10:19

1

如果$valuei最初设定为$v然后在第一次迭代(x - x) = 0,因此,你除以零(或者更确切地说,是试图通过东西,这是错误的划分0)。

没有看到循环的其余部分我只能推测,但我怀疑你可能要走的方向是在索引'1'而不是'0'开始循环。

此外,为什么乘以'100'而不是100?