0

我目前遇到一个问题,我想显示一个变量的数量,该变量通过一个 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

4 回答 4

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);
于 2013-05-07T20:26:47.417 回答
0

您的 if 语句是嵌套的,这是错误的做法。你第二个嵌套的 if 永远不会被击中:

if($faceval==0){
   if($faceval >= 0){
     if($faceval < 0){
于 2013-05-07T20:27:19.380 回答
0

如果错了,你有你的第一个if($facevalue = 0) { //do something }

它永远不会进入 if 因为您顶部的面值定义为 20,请检查您的代码。

于 2013-05-07T20:28:04.443 回答
-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 语句是错误的。

你会通过第一个 if $faceval== 0; 只有在 时,您才会第二次失败$faceval < 0,因此您尝试运行的代码将永远无法到达。

编辑

并且还被指出 - 初始值if ($faceval = 0)必须是==,否则您将重置该值,而不是检查它。

于 2013-05-07T20:27:27.323 回答