[英]PHP Foreach loop from database to calculate sum
我想知道的是,对于所有经验丰富的编码人员,我将如何从我的数据库中获取一个值,该值存储为double
(变量定期和加班)
然后计算两列中每列的总和。
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>';
}
非常感谢你的帮助。
泰勒
编辑我想在两个的底部添加最后一行以显示总和
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');
要显示包含每一行的表,然后显示包含总和的最后一行,则只需使用现有的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获取总和。
如果您不能使用SQL(例如,您的数据不是来自数据库),则Eternal1的答案是一个很好的选择。 而且很干净。
我会在SQL中而不是在PHP中做到这一点。
SELECT username, date, jobnumber, customer, worksite, duties, regulartime, overtime, (overtime + regulartime) as totaltime FROM table;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.