php - 间隔日期之间的php总和数据
问题描述
我有一个工作代码,可以过滤日期范围内的数据。
我的工作代码
<?php
//connection
$conn = new mysqli('xxxx', 'xxxx','xxxx', 'xxxx');
$start = date('Y-m-d', strtotime($_POST['date_start']));
$end = date('Y-m-d', strtotime($_POST['date_end']));
$output = array('error' => false, 'data' => '');
$sql = "SELECT * FROM users WHERE cosafai='polizza' and datapratica BETWEEN '$start' AND '$end'";
$query = $conn->query($sql);
if($query->num_rows > 0){
while($row = $query->fetch_assoc()){
$output['data'] .= "
<tr>
<td>".$row['name']."</td>
<td>".$row['cognome']."</td>
<td>".$row['targa']."</td>
<td>".$row['compagniascelta']."</td>
<td>".$row['premiopolizza']."</td>
<td>".date('M d, Y', strtotime($row['datapratica']))."</td>
</tr>
";
}
}
else{
$output['error'] = true;
}
echo json_encode($output);
?>
现在我需要在日期间隔内对特定列(Premio polizza)求和
想像
$sql = "SELECT SUM(premiopolizza) as sum FROM users WHERE cosafai='polizza' and datapratica BETWEEN '$start' AND '$end'";
但老实说,我无法管理它;)
我的最终结果应该是 最终结果
解决方案
由于无论如何您都在循环数据库结果,因此您可以在 while 循环中进行总结。
$sum = 0;
if($query->num_rows > 0){
while($row = $query->fetch_assoc()){
$sum += $row['premiopolizza'];
$output['data'] .= "
...
";
}
}
变量$sum
是最后所有的加法$row['premiopolizza']
。在我看来,不需要额外的 sql 语句。最后,您可以在输出中使用总和,例如...
$output['sum_premiopolizza'] = $sum;
推荐阅读
- python - 使用 python request.put 上传 csv 类型数据而不从保存的 csv 文件中读取?
- graphql - 如何在 typescript/javascript 导出中使用字符串模板处理模式 graphql-codegen
- iframe - 在 Ifram 中显示 base64 数据在 Lightning Experience 中不起作用
- c++ - Clang 不会内联 std::atomic::load 来加载 64 位结构
- javascript - React Cytoscape JS:所有节点都累积在一个位置
- python - Python confluent_kafka:消费(0)无法触发回调
- python - 树莓派如何通过 IFTTT 接收来自 webhook 的触发事件?
- android - 约束视图问题
- python - 如何在python中使用函数和循环调用变量
- javascript - 如何将 API JSON 响应参数传递给材质 ui 表