我必须使用PHP对值求和
我有一个数据库表,有日期和金额列,我必须每月对其中的一些进行一次更新,所以我如何才能做到这一点 请参阅数据库表的图像: 实际上,我希望输出为 在这个月,这是总数,例如,如果我们在1月份有5个条目,那么我想要1月份所有5个条目的总和,我怎么做我必须使用PHP对值求和,php,mysql,Php,Mysql,我有一个数据库表,有日期和金额列,我必须每月对其中的一些进行一次更新,所以我如何才能做到这一点 请参阅数据库表的图像: 实际上,我希望输出为 在这个月,这是总数,例如,如果我们在1月份有5个条目,那么我想要1月份所有5个条目的总和,我怎么做 select sum(total_amt) from table_name group by month(paydate) 这将返回每个月的一行以及总金额。选择日期从3月份开始的所有行 $result = mysqli_query($con,"SELEC
select sum(total_amt)
from table_name
group by month(paydate)
这将返回每个月的一行以及总金额。选择日期从3月份开始的所有行
$result = mysqli_query($con,"SELECT * FROM table WHERE paydate LIKE '2016-03%");'
然后在你的页面中重复计数
echo "March entries: " . mysqli_num_rows($result);
确保“paydate”字段使用日期数据类型,然后可以使用
SELECT SUM(total_amt) AS Sum FROM `Table_Name` GROUP BY MONTH(paydate);
我的建议是使用php函数从时间戳中获取日期的月份,包括:
$month = date_parse($date_parse)['month']; // 1-12
示例:假设$query具有数据库结果,其中的行包含总金额和发薪日,则可以执行以下操作:
$months_payments = array();
$current_month = '';
$payments_arr = array();
foreach ($query as $row){
$pay_month = date_parse($row['payday'])['month'];
if(strcmp($current_month, $pay_month)) != 0){
$months_payments[$current_month]=$payments_arr;
$current_month = $pay_month;
$payments_arr = array();
}
$payments_arr.push($row['total_amt'])
}
// To add the last month
$months_payments[$current_month]=$payments_arr;
$current_month = $pay_month;
排序之后,您应该只需要对每个月数组中的元素求和。如果您还想区分年份,则需要调整代码。在问题中附上您的图片。@RaviHirani图片link@1000111事实上我不是从哪里开始的,我想我应该从日期开始计算月份,从数据库中获取与该月份相关的数据,然后进行计算。你可以使用sum和groupby进行计算。将日期视为字符串是非常滥用的。BETWEEN操作符在这里更合适,并且作为一个额外的功能,它可以被索引,这样它就不会融化并杀死您的数据库。
$month = date_parse($date_parse)['month']; // 1-12
$months_payments = array();
$current_month = '';
$payments_arr = array();
foreach ($query as $row){
$pay_month = date_parse($row['payday'])['month'];
if(strcmp($current_month, $pay_month)) != 0){
$months_payments[$current_month]=$payments_arr;
$current_month = $pay_month;
$payments_arr = array();
}
$payments_arr.push($row['total_amt'])
}
// To add the last month
$months_payments[$current_month]=$payments_arr;
$current_month = $pay_month;