如何计算PHP中变量的总和

时间:2015-09-02 08:47:53

标签: php mysql

它计算,但从第二行开始。

<?php
include('connect-db.php');
$query = "select * from users";
$result = mysql_query($query); 
$row = mysql_fetch_array($result);
$sold= array();

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
  $sold=$row['contract']+$row['tva'];
  echo "<table><tr><td>" . $sold. "</td></tr></table>";
}
?>

3 个答案:

答案 0 :(得分:2)

您的代码有很多问题:

  1. 由于以下行,您的代码开始从第二行开始计算:

    $row = mysql_fetch_array($result);
    

    while循环之前的已打开记录集中获取第一个结果。

  2. $sold = array();

    为什么这是一个数组?

    如果您要求和$sold,请将变量威胁为整数,并使用0初始化。

    $sold = 0;
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
      $sold += $row['contract']+$row['tva'];
    
    echo "<table><tr><td>" . $sold. "</td></tr></table>";
    
  3. 在我看来,您可能只想打印一次表。如果是这样,请考虑使用类似SUM()的聚合函数查询数据库:

    SELECT SUM(contract + iva) AS contractIva FROM users GROUP BY <some column in your table>;
    

    以上允许删除while循环。

答案 1 :(得分:1)

由于您已使用$row = mysql_fetch_array($result);从结果中提取了一行,因此脚本开始仅添加下一行。正确的代码是:

 <?php
     include('connect-db.php');
    $query = "select * from users";
    $result = mysql_query($query); 
    $sold= array();

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $sold=$row['contract']+$row['tva'];
    echo "<table><tr>
    <td>" . $sold. "</td>
    </tr></table>";
    }
        ?>

答案 2 :(得分:0)

你也可以通过查询来做到这一点,这样你就不需要在application level上执行计算,database level可以为你完成这项工作。

 select sum(col1+col2) as total from users

你想要一个表而不是多个表我想,如果是,那就这样做:

echo "<table>
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
   $sold=$row['contract']+$row['tva'];
  echo <tr><td>" . $sold. "</td></tr>";
}
echo "</table>";