在PHP中获取SUM以获取数据库值

时间:2012-07-29 13:13:26

标签: php

我怎样才能在php文件中获得总和值

$a = mysql_query('SELECT d.name, d.idnumber, d.days FROM users d');
while($row = mysql_fetch_array($a))
{
   $idnumber = $row['idnumber'];
   $days     = $row['days'];
   echo $array_sum($days); 
}

我需要在php文件中将我从数据库中获取的变量求和,而不是在查询中作为SUM。在我的数据库中,我有3行,即3,10和1.所以我需要14作为总和

3 个答案:

答案 0 :(得分:1)

$sum = 0;
$a = mysql_query('SELECT d.name, d.idnumber, d.days FROM users d');
while($row = mysql_fetch_array($a))
{
   $idnumber = $row['idnumber'];
   $days     = $row['days'];
   $sum     += intval($days);
}
echo $sum;

答案 1 :(得分:0)

$sum = 0
while(...){
   ....
   $sum += $days;
   echo $sum;
}

答案 2 :(得分:0)

另一种选择,如果你发现自己需要经常做这样的事情,就是调换结果,这样你就可以轻松地对你想要的列进行求和。我在blog post中写了详细的信息。如果您不想点击:

,也会在下方粘贴转置功能
function transpose($array) {
    if (!is_array($array) || empty($array)) {
        return array();
    }
    else {
        foreach ($array as $row_key => $row) {
            if (is_array($row) && !empty($row)) { //check to see if there is a second dimension
                foreach ($row as $column_key => $element) {
                    $transposed_array[$column_key][$row_key] = $element;
                }
            }
            else {
                $transposed_array[0][$row_key] = $row;
            }
        }
        return $transposed_array;
    }
}

将此应用于您在问题中发布的代码,即可获得

$a = mysql_query('SELECT d.name, d.idnumber, d.days FROM users d');
$rows = array();
while($row = mysql_fetch_assoc($a)) {
    $rows[] = $row;
}
$transposed_results = transpose($rows);
echo array_sum($transposed_results['days']);

使用此技术还有其他一些好处,例如允许您轻松foreach通过列的值,或者对列的值运行更复杂的array_map回调。