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. 3_58 csapp 第三版的答案

    参考代码了http://blog.csdn.net/scf0920/article/details/77543294 3.58 看汇编写c代码 long decode(long x, long y,l ...

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

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

  3. 获取电脑名和Ip

    private string  GetHostNameAndIP( bool  isv4Orv6)        {            string HostName = Dns.GetHostN ...

  4. C# Socket流数据大小端读写封装

      网络数据是大端模式,而c#中的数据小端结构,那么在读写网络数据的时候需要进行转换.c#类库IPAddress已经封装了大小端的转换. 封装代码如下: using System.IO; using  ...

  5. springboot自定义错误页面(转)

    方法一:Spring Boot 将所有的错误默认映射到/error, 实现ErrorController @Controller @RequestMapping(value = "error ...

  6. Leetcode700.Search in a Binary Search Tree二叉搜索树中的搜索

    给定二叉搜索树(BST)的根节点和一个值. 你需要在BST中找到节点值等于给定值的节点. 返回以该节点为根的子树. 如果节点不存在,则返回 NULL. class Solution { public: ...

  7. 使用Fiddler抓取到的“姐夫酷”API接口

    下午本来准备抓取些网页视频地址,做一个小的视频app,用来学习ijkplayer,无意中发现了一个app--姐夫酷,这是一个很简单的网页,它也有相应的一个比较简单的android app. 于是心血来 ...

  8. Asterisk 代码架构概述

    from:http://blog.csdn.net/yetyongjin/article/details/7594447 近日分析Asterisk 1.8源码.Asterisk trunk上有这篇架构 ...

  9. 2019.10.24TCP协程处理

    server from gevent import monkey,spawn monkey.patch_all() import socket server = socket.socket() ser ...

  10. webpack配置vue项目

    npm init 安装webpack,webpack-cli 新建src目录,在src目录下新建main.js