php統計近一週和近30天的使用者資料
阿新 • • 發佈:2018-12-22
先上一張效果圖
這邊用的是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; }
我能看懂就行,您們湊合看吧 主要就是在for迴圈中查詢的資料。。。=_=!