php 总结(14) 每个客服当月每天的资料查询,多重数组查询

思路 

涉及到多重数组,当用户选择那一个月,某一个客服的时候 客服 当月每天 以及总的资料查询。
1.一个月内每天的时间戳生成数组:

for($i=0;$i<$j;$i++){

	$date_array[] =array($start_time+$i*86400,$start_time+($i+1)*86400);
 //每隔一天赋值给数组
}
$date_array[99]=array($thismonth_begin,$thismonth_end);

2.查询这个月内有数据的客服:

$kefu[] = $db->query("select distinct author,count(author) as ca from $table where status=1 and part_id=2 and $at>=$lastmonth_end and $at<=$thismonth_end group by author order by ca ", "", "author");;
$kefu[2][99]="ALL";

  ALL是所有客服一起的资料

可以用这个数组 循环生成单选列表

foreach ($kefu[2] as $k => $v){
	echo "<option value=‘{$v}‘";
	if ($v==$kefus) {
	echo "selected=‘‘";
	}
	echo">{$v}</option>";
		}
	?>

 3.数据查询 ,循环遍历时间戳数组,获取开始和结束值

foreach ($date_array as $tname => $t) {
	$b = $t[0];
	$e = $t[1];
	$tname=$tname+1;

           // 每一天总潜在
			// $data[$ptid][$tname+1]["dayall"] = $d1 = $db->query("select count(*) as c from $table where part_id=$ptid and $at>=$b and $at<=$e", 1, "c");
			// 每天每个客服潜在:
	$data[$tname]["all"] = $d2 = $db->query("select count(*) as c from $table where $at>=$b and $at<=$e $pp", 1, "c");
				// 每天每个客服预约:
	$data[$tname]["yuyue"] = $d3 = $db->query("select count(*) as c from $table where zhuanjia_num >1    $pp and $at>=$b and $at<=$e", 1, "c");
				// 每天每个客服本地预约:
	$data[$tname]["byuyue"]  = $db->query("select count(*) as c from $table where area=‘本市‘ and zhuanjia_num >1    $pp and $at>=$b and $at<=$e", 1, "c");

	$data[$tname]["yiq"]=  round($d5 / $d2 ,2)*100 ."%" ;
	$data[$tname]["yuq"]= round($d4 / $d2 ,2)*100 ."%";
			// 已到:
			// $data[$ptid][$kf][$tname+1]["come"] = $d6 = $db->query("select count(*) as c from $table where  and author=‘$kf‘ and $tf>=$b and $tf<=$e and status=1", 1, "c");
			// 未到:
			// $data[$ptid][$kf][$tname+1]["leave"] = $d1 - $d2;
	// 	}
	// }
}

 4.判断哪个客服 还是所有客服 根据GET获取的 月份=》更新月份数组和 客服=》更新$pp的值 ,生成数据

if ( $kefus==‘ALL‘) {
	$pp="";
}else{
	$pp="and author=‘{$kefus}‘";
}

5.用layui 前端展示数据

foreach($data as $k=>$v) {
					echo "<tr>";
					echo "<td> $k </td>";
					echo "<td>";		echo  $v[‘all‘];		echo "</td>";

					echo "<td>";		echo  $v[‘yuyue‘];		echo "</td>";		

					echo "<td>";		echo  $v[‘wyudao‘];		echo "</td>";

	// } 

	// 展示结束
					echo "</tr>";
	// }

				}

				?>

  

总结 尽量用一个数组 搞定所有要展示的数据,一个数组可以 分项包含数组 以便更好展示

 

if ( $kefus==‘ALL‘) {
	$pp="";
}else{
	$pp="and author=‘{$kefus}‘";
}
echo "<br>";
foreach ($date_array as $tname => $t) {
	$b = $t[0];
	$e = $t[1];
	$tname=$tname+1;

           // 每一天总潜在
			// $data[$ptid][$tname+1]["dayall"] = $d1 = $db->query("select count(*) as c from $table where part_id=$ptid and $at>=$b and $at<=$e", 1, "c");
			// 每天每个客服潜在:
	$data[$tname]["all"] = $d2 = $db->query("select count(*) as c from $table where $at>=$b and $at<=$e $pp", 1, "c");
				// 每天每个客服预约:
	$data[$tname]["yuyue"] = $d3 = $db->query("select count(*) as c from $table where zhuanjia_num >1    $pp and $at>=$b and $at<=$e", 1, "c");
				// 每天每个客服本地预约:
	$data[$tname]["byuyue"]  = $db->query("select count(*) as c from $table where area=‘本市‘ and zhuanjia_num >1    $pp and $at>=$b and $at<=$e", 1, "c");
	$data[$tname]["wyuyue"]  = $db->query("select count(*) as c from $table where area <> ‘本市‘ and zhuanjia_num >1    $pp and $at>=$b and $at<=$e", 1, "c");

          // 每天每个客服预到:
	$data[$tname]["yudao"] = $d4 = $db->query("select count(*) as c from $table where $tf between $b and $e   $pp ", 1, "c");
				// 每天每个客服本地遇到:
	$data[$tname]["byudao"]  = $db->query("select count(*) as c from $table where area=‘本市‘ and  $tf between $b and $e   $pp ", 1, "c");
	$data[$tname]["wyudao"]  = $db->query("select count(*) as c from $table where area <> ‘本市‘ and  $tf between $b and $e   $pp ", 1, "c");

        // 每天每个客服已到:
	$data[$tname]["yidao"] = $d5 = $db->query("select count(*) as c from $table where status =1 and  $tf between $b and $e   $pp ", 1, "c");
				// 每天每个客服本地已:
	$data[$tname]["byidao"]  = $db->query("select count(*) as c from $table where status =1 and area=‘本市‘ and  $tf between $b and $e   $pp ", 1, "c");
	$data[$tname]["wyidao"]  = $db->query("select count(*) as c from $table where status =1 and area <> ‘本市‘ and  $tf between $b and $e   $pp ", 1, "c");
	if ($d2 <=0) {
		$d2=1;
	}
	$data[$tname]["yiq"]=  round($d5 / $d2 ,2)*100 ."%" ;
	$data[$tname]["yuq"]= round($d4 / $d2 ,2)*100 ."%";
			// 已到:
			// $data[$ptid][$kf][$tname+1]["come"] = $d6 = $db->query("select count(*) as c from $table where  and author=‘$kf‘ and $tf>=$b and $tf<=$e and status=1", 1, "c");
			// 未到:
			// $data[$ptid][$kf][$tname+1]["leave"] = $d1 - $d2;
	// 	}
	// }
}

  

原文地址:https://www.cnblogs.com/nice2018/p/10773509.html

时间: 2024-10-26 17:45:51

php 总结(14) 每个客服当月每天的资料查询,多重数组查询的相关文章

【html】【14】特效篇--侧边栏客服

实例参考: http://sc.chinaz.com/tag_jiaoben/zaixiankefu.html 代码: css 1 @charset "utf-8"; 2 *{margin:0;padding:0;list-style-type:none;} //所有左上角开始坐标 3 a,img{border:0;} 4 body{font:12px/180% Arial, Helvetica, sans-serif, "新宋体";} //全部字体 5 /* si

在网页里添加客服

html文件的<body>添加 1 <!--qq客服--> 2 <div class="box_os"> 3 <div class="os_x" style=""></div> 4 <div class="osqq"> 5 <p><em>(工作日:9:30-18:30)</em></p> 6 <!--

Force.com微信开发系列(六)客服接口

当用户主动发消息给微信公众账号的时候(包括发送信息.点击自定义菜单click事件.订阅事件.扫描二维码事件.支付成功事件.用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数.此接口主要用于客服等有人工消息处理环节的功能,方便开发者提供更加优质的服务. 客服接口调用请求说明 客服接口调用的接口说明如下(http请求方式为POST),如果获取Access Token的方式

Live555 分析(三):客服端

live555的客服端流程:建立任务计划对象--建立环境对象--处理用户输入的参数(RTSP地址)--创建RTSPClient实例--发出DESCRIBE--发出SETUP--发出PLAY--进入Loop循环接收数据--发出TEARDOWN结束连接. 可以抽成3个函数接口:rtspOpen rtspRead rtspClose. 首先我们来分析rtspOpen的过程: int rtspOpen(rtsp_object_t *p_obj, int tcpConnect) { ... ... TRA

Senparc.Weixin.MP SDK 微信公众平台开发教程(十):多客服接口说明

微信官方的多客服接口原理是通过用户发送的信息,开发者服务器返回一条指定类型的响应信息,使用户的对话状态切换到官方的多客服状态(持续一段时间),这段时间内用户发送的所有信息都不会到达开发者的服务器,而是转到多客服的软件上. 需要实现多客服,必须是通过验证的服务号,进入后台的[服务]>[服务中心]>[多客服]进行申请及设置,详细信息可以见官方公告:https://mp.weixin.qq.com/cgi-bin/readtemplate?t=news/vote_wkd_tmpl&lang=

java 发送微信客服消息

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 package com.baosight.wechat.service; import net.sf.json.JSONObject;

客服系统 rails 日志文件

客服系统 rails 日志文件 1 [email protected]:~$ cd demo/ 2 [email protected]:~/demo$ ls 3 app config db Gemfile.lock log Rakefile test vendor 4 bin config.ru Gemfile lib public README.md tmp 5 [email protected]:~/demo$ cd bin/ 6 [email protected]:~/demo/bin$

20150220 Comet反向Ajax技术-在线客服系统之服务端

20150220 Comet反向Ajax技术-在线客服系统之服务端 2015-02-20 李海沿 前面我们讲了comet反向Ajax模型原理 以及实现了简单的实时页面聊天系统. (地址:http://www.cnblogs.com/lihaiyan/p/4281049.html) 本文中,我们在它的基础上来实现一个在线客服系统的服务端. 一.搭建页面客服系统框架 1.首先新建一个kefu.html网页 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01

php开发客服系统(持久连接+轮询+反向ajax)

欢迎在php严程序 - php教程学习AJAX教程, 本节课讲解:php开发客服系统(持久连接+轮询+反向ajax) php开发客服系统(下载源码) 用户端(可直接给客户发送消息)客服端(点击用户名.即可给该用户回复消息) 讲两种实现方式:一:iframe + 服务器推技术comet(反向ajax,即服务器向浏览器推送数据)二:ajax持久连接 + 长轮询 客服端采用第一种方式:iframe + 服务器推技术思路:1:新建comentbyiframe.php 该用文件使用while(true)一