从数据库中计算和PHP的foreach循环(PHP Foreach loop from databa

2019-10-23 01:12发布

我想知道所有你更有经验的程序员的我怎么会拿一个值从我的数据库,该数据库存储为双到来

(变量regulartime和超时)

然后计算各两列的总和..

foreach ($result as $row) {
    echo '<tr><td>' . $row['username'] . '</td>
        <td>' . $row['date'] . '</td>
        <td>' . $row['jobnumber'] . '</td>
        <td>' . $row['customer'] . '</td>
        <td>' . $row['worksite'] . '</td>
        <td>' . $row['duties'] . '</td>
        <td>' . $row['regulartime'] . '</td>
        <td>' . $row['overtime'] . '</td></tr>';


}

非常感谢你的帮助。

泰勒

编辑我想在两个底部显示的金额增加最后一行

Answer 1:

当你想显示包含各行的表,然后将含有总和最后一行,你只需要使用现有foreach循环递增总计:

$totalRegularTime = 0;
$totalOverTime = 0;

foreach ($result as $row) {
    echo '<tr><td>' . $row['username'] . '</td>
        <td>' . $row['date'] . '</td>
        <td>' . $row['jobnumber'] . '</td>
        <td>' . $row['customer'] . '</td>
        <td>' . $row['worksite'] . '</td>
        <td>' . $row['duties'] . '</td>
        <td>' . $row['regulartime'] . '</td>
        <td>' . $row['overtime'] . '</td></tr>';

    $totalRegularTime += $row['regulartime'];
    $totalOverTime += $row['overtime'];
}

echo '<tr><td colspan="6">TOTAL</td>
    <td>' . $totalRegularTime . '</td>
    <td>' . $totalOverTime . '</td></tr>';



不过,如果你并不需要在显示所有行table第一,最好的解决办法是使用SQL来获取资金。
Eternal1的回答是,如果你不能使用SQL(如果你的数据不会从数据库中来举例)一个不错的选择。 而且它很干净。



Answer 2:

function calculateSum(array $data, $field)
{
    return array_reduce(
        $data,
        function ($result, $elem) use ($field) {
            return $result + $elem[$field];
        }, 0
    );
}

calculateSum($result, 'regulartime');
calculateSum($result, 'overtime');


Answer 3:

我会做它的SQL不是在PHP。

SELECT username, date, jobnumber, customer, worksite, duties, regulartime, overtime, (overtime + regulartime) as totaltime FROM table;


文章来源: PHP Foreach loop from database to calculate sum