page contents

php统计近一周和近30天的用户数据

以下内容希望帮助到大家!

attachments-2020-06-C89HsZUg5ef0459d4235d.png

先上一张效果图

v2-1e4058c7bc3646a23624b16d1c31d7fb_720w.jpg

这边用的是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;
    }


attachments-2020-06-LUEehrfZ5ef0449353b99.jpg

  • 发表于 2020-06-22 13:42
  • 阅读 ( 435 )
  • 分类:PHP开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1316 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章