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

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

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

先上一张效果图

 

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

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

 

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

<div>
	<button οnclick="zhou()" class="btnweek week active" style="margin-left: 300px">按周排</button>
      <button οnclick="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;
	}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113067.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • velocity 语法 null[通俗易懂]

    velocity 语法 null[通俗易懂]相信这个问题是很多使用Velocity的朋友所经常碰到的,大家可能非常期望下面这样的代码能够运行:  #if($foo==null)  …  #end  实际上这段代码会报错。这是因为Velocity中对null的支持比较特别。总统上说,判断是否为null有下面几种方法:  1.#if(!$foo)判断$foo为空,判断非空为#if($foo)  2.使用#ifnull()…

    2022年7月14日
    22
  • 联想笔记本电脑键盘亮了屏幕不亮_笔记本电脑开机键盘亮了屏幕不亮

    联想笔记本电脑键盘亮了屏幕不亮_笔记本电脑开机键盘亮了屏幕不亮联想笔记本电脑一直是笔记本电脑行业的大品牌,深受人们的喜爱。然而,它在使用时也会遇到很多问题,比如如何处理联想笔记本电脑开机键亮但是黑屏?联想笔记本电脑键盘失灵怎么办?因此,在购买联想笔记本之前,我们需要清楚地知道如何解决这个问题。一、联想笔记本电脑开机键亮但是黑屏1.如果联想笔记本电脑的开机键很亮,但屏幕是黑色的,您可以卸下笔记本电脑背面的电池,仅将电脑与电源适配器连接,然后尝试开机一次。如果启…

    2026年2月1日
    4
  • 数据可视化发挥流程的价值——江汽物流数据监控平台建设经验

    数据可视化发挥流程的价值——江汽物流数据监控平台建设经验一年的时间,江汽物流沉淀出一套流程可视化的经验。这里拿出来一同探讨。

    2022年6月1日
    42
  • internal server error wamp「建议收藏」

    internal server error wamp「建议收藏」找到wamp下的httpd.conf文件开启:mod_rewrite.so然后重启就apache服务就可以了!注:打开httpd.conf文件后搜索“mod_rewrite.so”把前面的#去掉也就是开启此功能了!

    2022年7月12日
    18
  • MVC接受JSON的一些注意事项

    MVC接受JSON的一些注意事项

    2021年6月21日
    101
  • CSS面试题

    CSS面试题1.有哪些方式(CSS)可以隐藏页面元素?1.opacity:0本质是将元素的透明度降为0,看起来是隐藏了,但是依然占据空间2.visibility:hidden占据空间3.display:none彻底隐藏元素,元素从文档流中消失,不占据空间4.z-index:-9999原理是将层级放到底部,看起来是隐藏了5.overflow:hidden这个只是隐藏元素溢出的部分6.transform:scale(0,0)将元素缩放为0,但是依然占据空间2.em\px\rem区别?Px:绝对

    2022年5月31日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号