PHP实现动态柱状图改进版_php技巧

本文实例分析了PHP实现动态柱状图的改进版。分享给大家供大家参考。具体分析如下:

前面已经写过如果只做动态柱状图的情况,其实原理还是很简单的。因为昨天下午有新的需求,今天上午又修改了一番,并将数据根据编号不同分割显示在表中。

下面把代码粘出来,方便以后自己查看,思路只是一时的火花,今天我想出来这么做,不一定下次还能想得到,也不用费劲的去想,所以写成笔记是比较好的形式。

<!DOCTYPE html>
<?php
// 计算上一个月的今天
function last_month_today($time)
{
  $last_month_time = mktime(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);
  }
  return date(date("Y-m", $last_month_time) . "-d", $time);
}
?>
<?php
include dirname(dirname(dirname(__FILE__))) . '/config.php';
$endDate = date('Y-m-d');
$date = strtotime($endDate);
$beginDate = last_month_today($date);
$sql = 'select count(*) from newpro where p_date>\'' . $beginDate . '\' and p_date<\'' . $endDate . '\'';
$d = db()->query($sql)->fetch(PDO::FETCH_NUM);
$sql2 = $sql . ' and is_pa_check_first=1 and is_pa_check_second=1 and is_pa_check_third=1';
$d2 = db()->query($sql2)->fetch(PDO::FETCH_NUM);
$sql3 = $sql . ' and is_pa_check_first=1';
$d3 = db()->query($sql3)->fetch(PDO::FETCH_NUM);
$sql4 = $sql . ' and is_pa_check_first=1 and is_pa_check_second=1';
$d4 = db()->query($sql4)->fetch(PDO::FETCH_NUM);
// 查询每个人通过审核的情况:
$sqlab = 'select d_m,sum(sroce) as total_score,count(d_m) as total_number
from newpro
  where is_pa_check_first=1
  and is_pa_check_second=1
  and is_pa_check_third =1
group by d_m';
$row = db()->query($sqlab)->fetchAll(PDO::FETCH_ASSOC);
?>
<html>
<head>
<meta charset="utf-8" />
<style>
div {
  background-color: #669900;
  width: 50px;
}
#div1 {
  height: 200px;
}
#table td {
}
</style>
<script type="text/javascript" src="../../../js/jquery-1.7.2.min.js"></script>
</head>
<body>
  <h3 align="center">近一个月总的情况</h3>
  <table border="0" align="center" id="table1">
  <caption>
     <?php echo "时间:".$beginDate."至".$endDate?>
     </caption>
  <tr align="center" valign="bottom">
    <td>
    <p><?php echo $d[0]?></p>
    <div id="div1"></div>
    </td>
    <td>
    <p><?php echo $d3[0]?></p>
    <div style="height:<?php $str=floor(($d3[0]/$d[0])*200); echo $str.'px'?>"></div>
    </td>
    <td>
    <p><?php echo $d4[0]?></p>
    <div style="height:<?php $str=floor(($d4[0]/$d[0])*200); echo $str.'px'?>"></div>
    </td>
    <td>
    <p><?php echo $d2[0]?></p>
    <div style="height:<?php $str=floor(($d2[0]/$d[0])*200); echo $str.'px'?>"></div>
    </td>
  </tr>
  <tr align="center" valign="top">
    <td><p>总计</p></td>
    <td><p>一审通过</p></td>
    <td><p>二审通过</p></td>
    <td><p>审核通过</p></td>
  </tr>
  </table>
  <h3 align="center">近一个月每个人的情况</h3>
  <table border="0" width="100%">
  <caption>每个人的完成情况如下表:</caption>
  <!-- 因为总的列数比较长,如果显示在一个表格中,数据会很拥挤,多的话根本就看不清楚。
     所以需要将数据进行分割,根据长度进行动态的分割,显示在多张表中。
   -->
    <?php
    $arr = array_chunk($row,2,false);//2表示分割的单位长度,false表示索引从0开始
    foreach($arr as $newRow){
      $thStr = "<th style='background-color:#669900' width='110px' height='30px'>产品开发编号</th>";
      $trStr_total_score = "<tr align='center' style='background-color:silver' height='25px'><td>总分</td>";
      $trStr_total_number = "<tr align='center' style='background-color:silver' height='25px'><td>总数量</td>";
      $trStr_average_score = "<tr align='center' style='background-color:silver' height='25px'><td>平均分</td>";
      $resultStr = "";
      foreach ($newRow as $key => $value) {
      // echo $key."=>".$value."<br/>";
      $x = 0;
      foreach ($value as $key2 => $value2) {
        // echo $key2 . "=>" . $value2 . "<br/>";
        if ($key2 == 'd_m') {
        $thStr .= "<th style='background-color:#669900'>" . $value2 . "</th>"; // 表头
        } elseif ($key2 == 'total_score') {
        $value2 = sprintf("%.2f", $value2); //保留2位小数
        $trStr_total_score .= "<td>" . $value2 . "</td>";
        $x += $value2;
        } elseif ($key2 == 'total_number') { 

        $trStr_total_number .= "<td>" . $value2 . "</td>";
        $x /= $value2;
        }
      }
      $x = sprintf("%.2f",$x);
      $trStr_average_score .= "<td>" . $x . "</td>";
      }
      echo "<table border='0' width='100%'>";
      echo $thStr;
      echo $trStr_total_number . "</tr>";
      echo $trStr_total_score . "</tr>";
      echo $trStr_average_score . "</tr>";
      echo "</table>";
      echo "<p height='150px'></p>";
    }
    ?>
  </table>
</body>
</html>

数据库方便就不弄了,其实,根据查询的表名和字段名,是很容易建一个测试的数据表的。关键是思路,无论怎么变,思路是关键。

为了更加方便的了解代码的效果,截个图吧

希望本文所述对大家的php程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
动态柱状图
js实现动态柱状图、动态柱状图、html5动态柱状图、bootstrap实现柱状图、ppt动态柱状图,以便于您获取更多的相关知识。

时间: 2024-11-08 19:45:54

PHP实现动态柱状图改进版_php技巧的相关文章

PHP+Mysql+jQuery实现动态展示信息_php技巧

在本站前面有文章介绍了如何实现发表微博说说:PHP+Mysql+jQuery实现发布微博程序--jQuery篇,本例将基于其数据库结构,用动态的方式展示发表的说说信息. 查看示例:DEMO XHTML 复制代码 代码如下: <div id="demo"> <div class="saylist"> <a href="#"><img src="images/0.jpg" width=&q

解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法_php技巧

-------------------------------------------------------- 风十三 落伍首发  转载请注明作者和出处 ------------------------------------------------------ 1.如何修改默认发布为动态页: 这个其实很简单,会改html就可以了!把dede文件夹打开,用编辑器打开article_add.php,找到<td width="90">发布选项:</td>     

PHP令牌 Token改进版_php技巧

正是由于使用了 base64 ,所以在把这个令牌通过 GET方法发送的时候,出现了问题. 比如:http://test/test.php?a=1+2 你用 $_GET["a"] 取得是:1 2 ,即那个加号没有了.一开始我用 urlencode 对其进行转换,但是总有那么一两的结果是意料外的. 后来想想 base64 的字符就限定于: [A-Za-z0-9\+\/=] 这么多,加号出问题,我就把加号换成不出问题的符号,下划线是最好的选择.下面是修改后的代码: GEncrypt.inc.

php 动态添加记录_php技巧

复制代码 代码如下: <html> <head> <title>插入一条新数据</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <form method="post" name="form1" actio

PHP Squid中可缓存的动态网页设计_php技巧

当然,前提要先打开CDN中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成If-Modified-Since .所以我们写程序主要是对If-Modified-Since控制就好了.记的,缓存系统架构中计中最好是后端来控制,所以最好的方法是程序来管理过期.呵,我只会php,就用php写一个,别的程序也是一样 见我下面的程序,呵呵,5分钟过期. <?php $headers = apache_request_headers()

apache+codeigniter 通过.htcaccess做动态二级域名解析_php技巧

复制代码 代码如下: AuthName "yousite Website Coming Soon..." //如果你想给你的网站加个权限访问 AuthType Basic AuthUserFile D:/xxx/.htpasswd #如果你想设置密码访问 如何生成.htpasswd可以访问 http://www.htaccesstools.com/htpasswd-generator/ #AuthGroupFile /dev/null require valid-user <If

PHP动态柱状图实现方法_php技巧

本文实例讲述了PHP动态柱状图实现方法.分享给大家供大家参考.具体分析如下: 1.需求 查询最近一个月的数据总条数和审核通过的条数,做成柱状图 2.实现代码: <!DOCTYPE html> <?php //计算上一个月的今天 function last_month_today($time){ $last_month_time = mktime(date("G", $time), date("i", $time),date("s"

PHP动态柱状图实现方法

 这篇文章主要介绍了PHP动态柱状图实现方法,实例分析了php结合HTML元素实现动态柱状图的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了PHP动态柱状图实现方法.分享给大家供大家参考.具体分析如下: 1.需求 查询最近一个月的数据总条数和审核通过的条数,做成柱状图 2.实现代码: ? 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 3

PHP 开发环境配置(Zend Studio)_php技巧

开发环境配置(Zend Studio)_php技巧-zend studio环境配置">   安装完成后运行程序 在Help菜单中有Register选项进行注册. 提供注册码如下: Username: zendstudio.netSerial Number: 3727234F6095F72034F6095F