本文实例讲述了php动态柱状图实现方法。分享给大家供大家参考。具体分析如下:
1.需求
查询最近一个月的数据总条数和审核通过的条数,做成柱状图
2.实现代码:
<!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.'\'';
//$sql = "select count(*) from newpro where p_date>'$beginDate' and p_date <'$endDate'";//这条语句也可以
$d = db()->query($sql)->fetch(PDO::FETCH_NUM);
//echo "总的数据条数:".$d[0];
//查询审核通过的数据条数
$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);
//echo "审核通过的数据条数:".$d2[0];
//查询一次审核通过的条数
$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);
?>
<html>
<head>
<meta charset="utf-8"/>
<style>
table{
cellpadding:0px;
cellspacing:0px;
}
p{
padding:0px;
margin:0px;
}
div{
background-color:#669900;
width:50px;
}
#div1{
height:200px;
}
</style>
<script type="text/javascript" src="../../../js/jquery-1.7.2.min.js"></script>
</head>
<body>
<table border="0" >
<tr align="center" valign="bottom">
<td>
<p><?php echo $d[0]?></p>
<div id="div1"></div>
</td>
<td >
<p><?php echo $d3[0]?></p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</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 class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/xiazai/code/8771" title="MDWechat微信主题模块"><img
src="https://img.php.cn/upload/webcode/000/000/012/175665060333741.png" alt="MDWechat微信主题模块" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/xiazai/code/8771" title="MDWechat微信主题模块">MDWechat微信主题模块</a>
<p>MDWechat是一款xposed插件,能够使使微信Material Design化。功能实现的功能有:1.主界面 TabLayout Material 化,支持自定义图标2.主界面 4 个页面背景修改3.全局 ActionBar 和 状态栏 颜色修改,支持主界面和聊天页面的沉浸主题(4.0新增)4.自动识别微信深色模式以调整MDwechat配色方案(3.6新增)5.主界面添加悬浮按钮(Float</p>
</div>
<a href="/xiazai/code/8771" title="MDWechat微信主题模块" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div>
<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>
</body>
</html>3.效果图如下所示:

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










