PHP数学,循环变量和显示

时间:2013-05-07 20:24:31

标签: php

我目前遇到的问题是,我希望显示来自运行while循环的变量的数量来收集信息。 while循环将使用多个产品,但我只想显示一个最终结果。这就是我所拥有的:

$amountoff = NULL;
$faceval = 20;

while($row = mysql_fetch_object($que)){
  $val = $row->amount;
  $price = $row->price;
  $quantity = $row->quantity;
  //if($faceval>0){
    if($faceval >= 0){
      if($faceval < 0){
        // Do Nothing
      } else {
        if($quantity > 1){
          if($quantity * $price < $faceval){
            $amountoff = $price * $quantity;
            $faceval = $faceval - $val;
          }
        } else {
          $amountoff = $price;
          $faceval = $faceval - $val;
        }
      }
    }
  //}

}
echo money_format('%(#10n', $amountoff);

我的问题:我的问题是为什么我的金额会一直空白或为0.00?我正在测试我的$ val = 15.00,$ price = 7.50和$ quantity = 1.我无法弄清楚数学是如何破坏或回归为0.00 /空白。有什么想法或建议吗?我没有收到任何PHP错误或MySQL错误;我只是没有得到超过0.00作为我的返回值。

编辑:我已经通过完全取出第一个if语句来修改if语句,而我仍然得到0.00的响应

4 个答案:

答案 0 :(得分:3)

if($ faceval = 0){应该是

if($faceval==0){

它永远不会进入那个声明

编辑:只是为了清理你的代码: 编辑:添加了一些调试

$amountoff = NULL;
$faceval = 20;
$set = false;
while($row = mysql_fetch_object($que) && $faceval>0){
   $val = $row->amount;
   $price = $row->price;
   $quantity = $row->quantity;
   $set = true;
   if($quantity > 1 && $quantity * $price < $faceval){
       $amountoff = $price * $quantity;
       if ($price==0) echo "PRICE IS ZERO<br>";
       if ($quantity==0) echo "QTY IS ZERO<br>";
       $faceval = $faceval - $val;
   } 
   else {
          $amountoff = $price;
          if ($price==0) echo "PRICE IS ZERO<br>";
          $faceval = $faceval - $val;
   }
}
if (!$set) echo "LOOP NEVER ENTERED<br>";
echo money_format('%(#10n', $amountoff);

答案 1 :(得分:0)

你的if语句是嵌套的,这是错误的方法。你第二次嵌套如果永远不会被击中:

if($faceval==0){
   if($faceval >= 0){
     if($faceval < 0){

答案 2 :(得分:0)

你的第一个错误if($facevalue = 0) { //do something }

它永远不会进入if,因为你的topvalue被定义为20,检查你的代码。

答案 3 :(得分:-1)

  if($faceval=0){
    if($faceval >= 0){
      if($faceval < 0){
        // Do Nothing
      } else {
        if($quantity > 1){
          if($quantity * $price < $faceval){
            $amountoff = $price * $quantity;
            $faceval = $faceval - $val;

你的嵌套if语句是错误的。

如果$faceval == 0,您将传递第一个;只有在$faceval < 0时你才会失败,所以你试图运行的代码永远不会到达。

修改

并且还指出 - 最初的if ($faceval = 0)需要==,否则您将重置该值,而不是检查它。