php+mysql按月统计一年内注册人数
2018-03-05 19:29
309 查看
首先业务需求是统计一年内(截止到当前时间)每个月的注册人数,而且没有人注册的月份也要显示,并显示注册人数为0
这里封装好的函数,执行原生sql语句查询,用框架也是一样的
这是查询到的结果集,可以看到注册人数为0的月份是不显示的,不符合业务需求,前端也表示无法处理
这里通过循环上面的结果集,把没有数据的月份补全
这里是最后的结果,符合需求,这样返给前端,他们就能愉快的循环了...
当然会有更好的方法,希望大家多多指教,下面附上代码
function count(){
JXMySQL_Execute("SELECT DATE_FORMAT(FROM_UNIXTIME(reg_time),'%Y%m') AS month,COUNT(*) AS num
FROM pt_user
WHERE `reg_time`
BETWEEN UNIX_TIMESTAMP(now()) - 31556926
AND UNIX_TIMESTAMP(now())
GROUP BY month");
$arr = JXMySQL_Result();
$today = date('m');
$res = [];
foreach ($arr as $key => $val) {
$res[$val['month']] = $val['num'];
}
$ext = date('Y');
for ($i=1; $i < 13; $i++) {
if($today < 10){
if($i < 10 && $i >$today) $key = ($ext-1).'0';
elseif($i >= 10) $key = $ext-1;
else $key = $ext.'0';
if(!array_key_exists($key.$i,$res)){
$res[$key.$i] = 0;
}
}else{
if($i > $today) $key = $ext-1;
elseif($i >= 10 && $i <= $today) $key = $ext;
else $key = ($ext).'0';
if(!array_key_exists($key.$i,$res)){
$res[$key.$i] = 0;
}
}
}
}
这里封装好的函数,执行原生sql语句查询,用框架也是一样的
这是查询到的结果集,可以看到注册人数为0的月份是不显示的,不符合业务需求,前端也表示无法处理
这里通过循环上面的结果集,把没有数据的月份补全
这里是最后的结果,符合需求,这样返给前端,他们就能愉快的循环了...
当然会有更好的方法,希望大家多多指教,下面附上代码
function count(){
JXMySQL_Execute("SELECT DATE_FORMAT(FROM_UNIXTIME(reg_time),'%Y%m') AS month,COUNT(*) AS num
FROM pt_user
WHERE `reg_time`
BETWEEN UNIX_TIMESTAMP(now()) - 31556926
AND UNIX_TIMESTAMP(now())
GROUP BY month");
$arr = JXMySQL_Result();
$today = date('m');
$res = [];
foreach ($arr as $key => $val) {
$res[$val['month']] = $val['num'];
}
$ext = date('Y');
for ($i=1; $i < 13; $i++) {
if($today < 10){
if($i < 10 && $i >$today) $key = ($ext-1).'0';
elseif($i >= 10) $key = $ext-1;
else $key = $ext.'0';
if(!array_key_exists($key.$i,$res)){
$res[$key.$i] = 0;
}
}else{
if($i > $today) $key = $ext-1;
elseif($i >= 10 && $i <= $today) $key = $ext;
else $key = ($ext).'0';
if(!array_key_exists($key.$i,$res)){
$res[$key.$i] = 0;
}
}
}
}
相关文章推荐
- PHP+Redis 消息队列 实现高并发下注册人数统计的实例
- php+mysql在线人数统计
- php+mysql在线人数统计
- PHP+Redis 消息队列 实现高并发下注册人数统计
- Mysql 中使用DATE_FORMAT函数按月、周统计数据
- php+mysql 生成统计报表
- MySql按周,按月,按日分组统计数据
- php统计在线人数
- PHP+Mysql+jQuery实现地图区域数据统计-展示数据
- Mysql 分别按月, 日为组group,进行统计排序order
- Mysql 中使用DATE_FORMAT函数按月、周统计数据
- 【php学习】php+mysql实现用户注册功能
- Mysql 中使用DATE_FORMAT函数按月、周统计数据
- PHP统计mysql数据表里制定字段内容的总数
- 也谈php网站在线人数统计
- mysql+Apache+php环境配置中安装Apache,注册服务出现“(OS 5)拒绝访问的解决方法
- php统计在线人数
- 发款php蜘蛛统计插件只要有mysql就可用
- [MySQL] 数据统计 —— 按周,按月,按日分组统计数据
- MySql按周,按月,按日分组统计数据