十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1.对所有三个字段设置索引;2.建议添加一个字段(整型)用作UNIX时间戳,用该字段对时间进行查找.
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、虚拟空间、营销软件、网站建设、阿鲁科尔沁网站维护、网站推广。
统计,就是把基本的数据,整合起来。
用到sql的,有group by 功能,count功能,order by功能等等。
sql将收集的数据,进行统计分析。
一般情况下,sql处理后得到的数据,还要通过php的逻辑来进行整理。
以一定的格式,展示到前台。
一般都是以数组的方式展示,这也是数据结构的概念。
看这张图片,基本想想结构大概为
{上线数,出单总数,核过总数,总人均,总核率,{(坐席人1,工号1,出单数1,发货数1,核单率1),(坐席人2,工号2,出单数2,发货数2,核单率2)}}
如果用php展示成上面的结构的话,就很好处理了。
思路分两步:
首先,每小时的数据,需要你写代码查询出来并记录到一张指定的表里面,以供调用;
其次,就是这个图标展示。其实目前你在网上看到的大部分图表用的都是老外开发的几款,个人推荐一个JS版的吧,不喜欢flash的。
具体可以搜索下 HighCharts
?php
// 首先你并没有说清楚存的是真正的时间如2015-12-2这种类型的字符串,或者是时间戳
// 就按这两种可能来算,用php程序来写,首先按id降序取出所有的信息成一个二维数组$arr
// 你上面的条件是1:30到两点,下面又是11:30-2:00,这里我们以11:30来算
// 假设你存的是时间戳,
// 转化成时间,在这里我们只去时,分,在这里测试一下
echo $str = date('H:i','1448940600');//11:30
var_dump($str'11:29');
//echo strtotime('2015-12-2 11:30');//1449027000
// 现在我们来遍历这个二维数组,遍历之前先声明两个技术变量$a代表11:30-2:30,$b
$a = 0;$b = 0;
foreach($arr as $key = $vo){
$str = date('H:i',$vo[time]);
if($str='11:30' $str='14:00'){
$a ++;
}else if($str='14:00' $str='14:30'){
$b ++;
}else
countinue;
}
echo '11:30到14:00之间注册的人有'.$a.'个br /';
echo '14:00到14:30之间注册的人有'.$b.'个br /';
//至于平均,除一下总共几天就可以了,当然这种并不适合数据大的时候,但是取的时候可以限制数量
//接下来说下一种,存的就是时间字符串,那就通过截取函数得到时he分,然后直接比较就可以了
//大致思路就是这些,
?
参考如下:
select user1,sum(value)balance
from UserValue表
where time between "2015-01-01" and "2015-02-01" + INTERVAL 1 MONTH
group by user1
;
--或者
select user1,sum(value)balance
from UserValue表
where DATE_FORMAT(time,"%Y-%m") between "2015-01" and "2015-02"
group by user1
;
--或者
select user1,sum(value)balance
from UserValue表
where DATE_FORMAT(time,"%Y-%c") between "2015-1" and "2015-2"
group by user1
;
数据循环一下就行了。
foreach($list as $key = $value) {
$newkey = date('h', $value['firsttime']);
$list[$newkey][] = $value;
}
var_dump($list);