PHP实现了动态直方图的改进版本
分析了用PHP实现的动态直方图的改进版本。分享给大家参考。具体分析如下:
之前有人写过,如果只做动态直方图,原理很简单。因为昨天下午有新的需求,今天上午又修改了一次,数据按照不同的数字划分显示在表格中。
把下面的代码贴出来,以便以后自己检查。思路只是一时的火花。今天,我想出来做。下一次可能拿不到,也不用想太多。因此,写笔记是一种更好的形式。
!DOCTYPE html?php /计算上一个月的今天函数last _ month _ today($time){ $ last _ month _ time=MK time(date(' G ',$time),date('i ',$time),date('s ',$time),date('n ',$ time),0,date('Y ',$ time));$last_month_t=date('t ',$ last _ month _ time);if ($last_month_t date('j ',$ time)){ return date(' Y-m-t h : I :s ',$ last _ month _ time);}返回日期(日期(' Y-m ',$上个月_时间).-d ',$ time);} ?服务器端编程语言(Professional Hypertext Preprocessor的缩写)包含目录名(目录名(目录名(_ _ FILE _)))./config。PHP ';$结束日期=日期(' Y-m-d ');$ date=strtotime($ end date);$beginDate=上个月_今天($ date);$sql='从newpro中选择计数(*),其中p_date\ ' .$beginDate '\ '和p_date\ ' .$endDate .\'';$ d=db()-查询($ SQL)-fetch(PDO : fetch _ NUM);$sql2=$sql .并且is_pa_check_first=1,is_pa_check_second=1,is _ pa _ check _ third=1 ';$ D2=db()-query($ sq L2)-fetch(PDO : fetch _ NUM);$sql3=$sql .并且is _ pa _ check _ first=1 ';$ D3=db()-查询($ SQL 3)-fetch(PDO : fetch _ NUM);$sql4=$sql .并且is_pa_check_first=1,is _ pa _ check _ second=1 ';$ D4=db()-查询($ SQL 4)-fetch(PDO : fetch _ NUM);//查询每个人通过审核的情况:$sqlab='从newpro中选择d_m,sum(sroce)作为总分,计数(d_m)作为total_number其中is_pa_check_first=1,is_pa_check_second=1,is _ pa _ check _ third=1组by d _ m ';$ row=db()-query($ sqlab)-fetchAll(PDO : FETCH _ ASOC);html head meta charset=' utf-8 '/style div { background-color : # 669900;宽度: 50px} # div 1 { height : 200 px } # table TD { }/style脚本类型=' text/JavaScript ' src=' http :/././js/jquery-1。7 .2 .量滴js '/脚本/头体H3对齐='中心'近一个月总的情况/h3表格边框='0' align='center' id='table1 '标题?“php回声"时间:'.$beginDate .至$endDate?/caption tr align=' center ' valign=' bottom ' TD p?php echo $d[0]?/p div id=' div 1 '/div/TD TD TD p?php echo $d3[0]?/p div style='height:PHP $ str=floor($ D3[0]/$ d[0])* 200;回声$str .px?/div/TD/TD/p?php echo $d4[0]?/p div style='height:PHP $ str=floor($ D4[0]/$ d[0])* 200;回声$str .px?/div/TD/TD/p?php echo $d2[0]?/p div style='height:PHP $ str=floor($ D2[0]/$ d[0])* 200;回声$str .px?/div/TD/tr tr align=' center ' valign=' top ' TDP总计/p/td tdp一审通过/p/td tdp二审通过/p/td tdp审核通过/p/TD/tr/表h3对齐='中心'近一个月每个人的情况/h3表格边框='0 '宽度='100% '标题每个人的完成情况如下表:/caption!-因为总的列数比较长,如果显示在一个表格中,数据会很拥挤,多的话根本就看不清楚。所以需要将数据进行分割,根据长度进行动态的分割,显示在多张表中。
- ?php $arr=array_chunk($row,2,false);//2表示分割的单位长度,假的表示索引从0开始foreach($ arr作为$ new row){ $ thStr=' th style='底色: # 669900 '宽度=' 110 px '高度=' 30px '产品开发编号/th ';$ trStr _ total _ score=' tr align=' center ' style='底色:银色'高度=' 25px ' TD总分/TD ';$ TrSTr _ total _ number=' tr align=' center ' style='底色:银色'高度=' 25px ' TD总数量/TD ';$ trStr _ average _ score=' tr align=' center ' style='底色:银色'高度=' 25px ' TD平均分/TD ';$ resultStr=foreach($新行作为$ key=$ value){//echo $ key。'='.价值.br/';$ x=0;foreach($ value as $ key 2=$ value 2){//echo $ key 2 . '=' .价值2美元.br/';if ($key2=='d_m') { $thStr .='th style='底色-颜色:#669900 ' '。价值2美元./th ';//表头} else if($ key 2==' total _ score '){ $ value 2=sprint f(' %)。2f ',$ value 2);//保留2位小数$trStr_total_score .='td ' .价值2美元./TD ';$ x=$ value2}否则if($ key 2==' total _ number '){ $ TRstr _ total _ number .='td ' .价值2美元./TD ';$ x/=$值2;} } $x=sprintf('%.2f ',$ x);$trStr_average_score .='td ' .$ x . '/TD ';}回声表格边框='0 '宽度=' 100% ';echo $ THstr ' echo $ TRstr _ total _ number '/tr ';echo $ Trstr _ total _ score '/tr ';echo $ Trstr _ average _ score '/tr ';echo '/table ';回声' p高度=' 150 px '/p ';} ?/表格/正文/html数据库方便就不弄了,其实,根据查询的表名和字段名,是很容易建一个测试的数据表的。关键是思路,无论怎么变,思路是关键。
为了更方便地理解代码的效果,剪切一张图片
希望这篇文章对大家的php编程有所帮助。
版权声明:PHP实现了动态直方图的改进版本是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。