【问题标题】:SUM in a while loop - php在while循环中求和 - php
【发布时间】:2016-08-15 17:32:10
【问题描述】:

我有一个循环,它从表中提取 2 个数字,然后计算总数。

我想找到最终的总数(所有总数的总和)。

有没有办法不使用 DB 来计算 SUM,而是在循环中进行。

while($row = $result->fetch_assoc()) {

   $total= $row["num1"] + $row["num2"];

}

我该怎么做?

这是错误的:

while($row = $result->fetch_assoc()) {

   $total= $row["num1"] + $row["num2"];

   $total = $total + $total;

}

【问题讨论】:

  • 在第一次尝试中,您每次迭代都重新分配$total,但当然您希望在每次迭代中添加新值。在第二次尝试中相同,只是您添加了另一行,将值加倍,但仍重新分配它。还要确保在 while 循环之前初始化变量。

标签: php while-loop sum


【解决方案1】:
$total=0;
while($row = $result->fetch_assoc()) {

   $sum= $row["num1"] + $row["num2"];

   $total = $total + $sum;

}

【讨论】:

    【解决方案2】:

    只需在while 循环之外将$total 初始化为零,然后像这样添加:

    <?php
    
        $total     = 0;
    
        while($row = $result->fetch_assoc()) {
           $total += ($row["num1"] + $row["num2"]);
    
        }
    

    【讨论】:

      【解决方案3】:

      您可以简单地将循环的每次迭代添加到总总数中:

      <?php 
      $total = 0;
      while($row = $result->fetch_assoc()) {
         $total += $row['num1'] + $row['num2'];
      }
      

      实际上,在 php 中,您甚至不需要初始化 $total 变量,如图所示,但它被认为是一种很好的做法,因为它提高了代码的可读性。

      在脚本语言级别上执行此操作显然比使用 db 引擎本身计算总和效率低得多。但我认为这不是一个真正的工作任务,而是一些研讨会作业或类似的......

      【讨论】:

        【解决方案4】:
        $total = 0;
        
        while($row = $result->fetch_assoc()) {
           $total += $row["num1"] + $row["num2"];
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-11-27
          • 1970-01-01
          • 2015-07-17
          • 2014-10-19
          • 2013-06-12
          • 1970-01-01
          • 1970-01-01
          • 2018-05-20
          相关资源
          最近更新 更多