https://blog.csdn.net/shenpengchao/article/details/59073589

先上一张效果图

这边用的是echarts插件http://echarts.baidu.com/

上代码(小白写的 别追求什么屌逼代码,就是冗余的面向过程,不服你来咬我)

<div>
<button onclick="zhou()" class="btnweek week active" style="margin-left: 300px">按周排</button>
      <button onclick="yue()" class="btnweek month" style="margin-left: 100px">按月排</button>
</div> <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main" style="width: 95%;height:400px;"></div>
<script type="text/javascript">
zhou();
function zhou() {
var myChart = echarts.init(document.getElementById('main'));
$(".week").attr("class","btnweek week active");
$(".month").attr("class","btnweek month");
$.get('?act=welcome&op=index&get_data=week',function(data){
myChart.setOption(data);
},'json');
}
function yue(){
var myChart = echarts.init(document.getElementById('main'));
// 异步加载数据
$(".week").attr("class","btnweek week");
$(".month").attr("class","btnweek month active");
$.get('?act=welcome&op=index&get_data=month',function(data){
myChart.setOption(data);
},'json');
}
</script>

这些是html代码,需要引入一个erchars.js文件 可以从上面网址down下来,接下来上统计的代码

/*
*
* VIP列表
*
*/ public function indexOp()
{
$model_shop = Model('shop');
$model_admin = Model('admin');
$model_member = Model('member');
$model_ap = Model('ap');
$user=$this->getAdminInfo();
$admin=$model_admin->getOneAdmin($user["id"]);
if($admin["admin_area"]){
$condition["areacode"]=array("in",$admin["admin_area"]);
} //ap
$shop_id = $model_shop->getShopList($condition, '*');
$sid=array();
foreach($shop_id as $shid){
$sid[]=$shid["id"];
}
$condition_ap["shop_id"]=array("in",$sid); if ($_GET['get_data']=='week') {
echo $this->get_json_arr(6);
}else if ($_GET['get_data']=='month') {
echo $this->get_json_arr(30);
}else{
Tpl::showpage('welcome.index');
}
} public function get_json_arr($num=6){
$model_shop = Model('shop');
$model_ap = Model('ap');
//统计商铺
for($i=$num;$i>=0;$i--){
$daystr=date('Y-m-d', strtotime("-$i day"));
$searchstr="TO_DAYS(from_unixtime(addtime,'%Y-%m-%d'))=TO_DAYS('".$daystr."')";
$shopCount=$model_shop->where($searchstr)->count();
$shopDayCountArray[]=$shopCount;
}
//统计ap
for($i=$num;$i>=0;$i--){
$daystr=date('Y-m-d', strtotime("-$i day"));
$searchstr="TO_DAYS(from_unixtime(addtime,'%Y-%m-%d'))=TO_DAYS('".$daystr."')";
$apCount=$model_ap->where($searchstr)->count();
$dateArray[]=date('m-d', strtotime("-$i day"));
$apDayCountArray[]=$apCount;
}
// echo "<pre>";
// print_r($dateArray);die;
if ($num==6) {
$title='近一周的商铺和AP的统计';
}else{
$title='近一月的商铺和AP的统计';
}
//处理json包
$json_arr = array(
'title'=>array('text'=>$title),
'tooltip'=>array('trigger'=>'axis'),
'legend'=>array('data'=>array('商铺','AP')),
'toolbox'=>array(
'show'=>true,
'feature'=>array(
'dataZoom'=>array('yAxisIndex'=>'none'),
'dataView'=>array('readOnly'=>false),
'magicType'=>array('type'=>array('line','bar')),
'restore'=>array(),
'saveAsImage'=>array()
),
), 'xAxis'=>array('type'=>'category','boundaryGap'=>false,'data'=>$dateArray),
'yAxis'=>array('type'=>'value','interval'=>1,'min'=>0,'axisLabel'=>array('formatter'=>'{value} 个')),
'series'=>array(
array(
'name'=>'商铺',
'type'=>'line',
'data'=>$shopDayCountArray
),
array(
'name'=>'AP',
'type'=>'line',
'data'=>$apDayCountArray
)
)
);
return json_encode($json_arr);exit;
}

php统计近一周和近30天的用户数据的更多相关文章

  1. antdv时间选择a-date-picker设置日期可选范围(近一周、近半月、近一月等) - moment.js

    Vue->Template: <a-date-picker v-model="value" :disabled-date="disabledDate" ...

  2. mysql查询出近一周,三个月,一年的数据

    SELECT * FROM 表名 WHERE 时间字段>DATE_SUB(CURDATE(), INTERVAL YEAR) 一年 SELECT * FROM 表名 WHERE 时间字段> ...

  3. MySQL 统计上一周从周一到周日的用户

    这个功能按理说很常见,奇怪的是很难搜索到一个合适的.稍微整理了下,具体的就不展开了,注意这个表中的时间为毫秒,这条语句拷贝复制就能用.照顾大部分的无脑码农. SELECT case when FROM ...

  4. PHP 获取上月,本月,近15天,近30天日期

    <?php //echo $_SERVER['PHP_SELF']; //define('ROOT_PATH',str_replace($_SERVER['PHP_SELF'],'',str_r ...

  5. mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句

    mysql查询今天.昨天.近7天.近30天.本月.上一月的SQL语句 这篇文章主要介绍了mysql查询今天.昨天.近7天.近30天.本月.上一月的SQL语句,一般在一些统计报表中比较常用这个时间段,需 ...

  6. 4.总结近5周以来的github上的工作情况,以图表方式分析你小组的工作情况、存在的问题及解决的方案。(尤心心)

    4.总结近5周以来的github上的工作情况,以图表方式分析你小组的工作情况.存在的问题及解决的方案. (1)利用github本身的graphs可以清晰的看出小组成员在github上面的交互,可以直接 ...

  7. mysql统计天、周、月、季度、半年、年

    之前在网上搜索按时间统计,发现不是很全 ,接着别人的思路进行延伸下, mysql统计天.周.月.季度.半年.年 前期工作创建辅助表 CREATE TABLE num (i INT); ),(),(), ...

  8. 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)

    在SQLSERVER,简单的组合sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况,非常实用,在SqlServer ...

  9. Tomcat集群下获取memcached缓存对象数量,统计在线用户数据量

    项目需要统计在线用户数量,系统部署在集群环境下,使用会话粘贴的方式解决Session问题.要想得到真实在线用户数,必须是所有节点的总和. 这里考虑使用memcached存放用户登录数据,key为use ...

随机推荐

  1. Ubuntu18.04 修改IP地址、查看网关、防火墙

    1. Ubuntu18.04 修改IP地址 修改 sudo vim /etc/netplan/50-cloud-init.yaml文件 # This file is generated from in ...

  2. 2018-2-13-wpf-PreviewTextInput-在鼠标输入获得-_u0003

    title author date CreateTime categories wpf PreviewTextInput 在鼠标输入获得 � lindexi 2018-2-13 17:23:3 +08 ...

  3. 转:解决Onethink上传视频的问题 超棒的解决方案

    用过Onethink的都知道,它是不能上传视频的. 有人想到用上传附件的方式上传视频,但是结果……就是提示没有上传文件. 要是正常上传个一两兆的图片啊,压缩文件什么的还是可以的. 所以,重点来了 怎么 ...

  4. LUOGU 2593 : [Zjoi2006] 超级麻将

    传送门 解题思路 直接爆搜全T..状态数太多了,所以我们考虑贪心+剪枝.贪心:先拿三个连着的,再拿四个一样的,再拿三个一样的,最后拿两个一样的这样的搜索顺序最优,两个的放最后是因为只要这样的一个,三个 ...

  5. jQuery的deferred对象使用详解【转载】

    一.什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作.其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们 ...

  6. SCAN listener and Node listener – How does it work

    http://www.mydbspace.com/? p=324 Single Client Access Name (SCAN) is new feature of oracle 11gR2 gri ...

  7. IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结(转)

    IntelliJ IDEA使用教程 (总目录篇) 首先,使用的时候,自己得先在电脑上安装个小乌龟.也就是svn啦. 第一步安装小乌龟. 如下: 具体安装好像没什么具体要求,一路next,就好. 如上图 ...

  8. 第二周<导学/分类>

    分类学习 分类算法各有不同 knn naivebyes regression dnn sklearn.linear_modlel 线性函数 sklearn.preprocessing 非线性函数 分类 ...

  9. PYTHON网络爬虫与信息提取[scrapy框架应用](单元十、十一)

    scrapy 常用命令 startproject  创建一个新的工程 scrapy startproject <name>[dir] genspider    创建一个爬虫         ...

  10. SDUT-3403_数据结构实验之排序六:希尔排序

    数据结构实验之排序六:希尔排序 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 我们已经学习了各种排序方法,知道在不同的 ...