从数据库中取出最近三十天的数据并生成柱状图的代码,需要的朋友可以参考下。
在终端用cd 命令进入文件目录
说明:此处例子我是拿项目中的一个例子讲解的。
1、新建一个项目 :用终端输入:zf create project Airline 格式:zf create action project project-name 备注:这些格式可以在终端输入zf 查看
2、新建一个action :zf create action dirgramshow index 格式:zf create action action-name controller-name
3、新建一个 model :zf create db-table flightinformation
action 层代码:indexController.php
代码如下:
public function indexAction ()
{
// action body
$db = new Application_Model_DbTable_Flightinformation();
/*获取最近30天内的数目
* select day(boo_time) as day,count(boo_autoid)as count,boo_time from bookinformation
where flag_pass=0 and date_sub(now(), interval 30 day)group by DATE_FORMAT(boo_time,'%m %d')
*/
$sql = "select DATE_FORMAT(boo_time,'%m-%d') as day,count(boo_autoid)as count from bookinformation " .
"where flag_pass=0 and date_sub(now(), interval 30 day)"group by DATE_FORMAT(boo_time,'%m %d')";
$result = $db->getAllInfo($sql)->fetchAll();
$this->view->result=$result;
}
view 层代码:dirgramshow.phtml
代码如下:
<script language="javascript" type="text/javascript">src="<?php <br>echo $this->baseUrl() . '/skin/source/jquery/jquery.js'?>"></script>
<script language="javascript" type="text/javascript">src="<?php <br>echo $this->baseUrl() . '/skin/js/ZJPjscharts.js'?>"></script>
<script type="text/javascript"> <br>var d=new Array(); <br>var color=new Array(); <br><?php <br>foreach ($this->result as $key => $value) { <br>?> <br>d.push(new Array('<?php <br>echo $value['day']?>',<?php <br>echo $value['count']?>)); <br>color.push('#2D6B96'); <br><?php <br>} <br>?> <br>if(d!=""){ <br>//['#2D6B96', '#327AAD', '#3E90C9', '#55A7E3', '#60B6F0', '#81C4F0', '#9CCEF0'] <br>var myData = d; <br>var colors =color; <br>var myChart = new JSChart('graph', 'bar'); <br>myChart.setDataArray(myData); <br>myChart.colorizeBars(colors); <br>myChart.setTitle('Airline diagram'); <br>myChart.setTitleColor('#8E8E8E'); <br>myChart.setAxisNameX(''); <br>myChart.setAxisNameY(''); <br>myChart.setAxisColor('#C4C4C4'); <br>myChart.setAxisNameFontSize(16); <br>myChart.setAxisNameColor('#999'); <br>myChart.setAxisValuesColor('#777'); <br>myChart.setAxisColor('#B5B5B5'); <br>myChart.setAxisWidth(1); <br>myChart.setBarValuesColor('#2F6D99'); <br>myChart.setBarOpacity(0.5); <br>myChart.setAxisPaddingTop(60); <br>myChart.setAxisPaddingBottom(40); <br>myChart.setAxisPaddingLeft(45); <br>myChart.setTitleFontSize(11); <br>myChart.setBarBorderWidth(0); <br>myChart.setBarSpacingRatio(50); <br>myChart.setBarOpacity(0.9); <br>myChart.setFlagRadius(6); <br>myChart.setTooltip(['North America', 'U.S.A and Canada']); <br>myChart.setTooltipPosition('nw'); <br>myChart.setTooltipOffset(3); <br>myChart.setSize(616, 321); <br>/*myChart.setBackgroundImage('<?php <br>//echo $this->baseUrl() . '/skin/image/ZJPchart_bg.jpg'?>');*/ <br>myChart.draw(); <br>} <br></script>
model 层代码:Flightinformation.php
代码如下:
class Application_Model_DbTable_Flightinformation extends Zend_Db_Table_Abstract
{
protected $_name = 'flightinformation';
public function getAllInfo($sql){
$adapter = Zend_Registry::get('db');
$flightinformation = $adapter->query($sql);
return $flightinformation;
}
}
最后的效果图如下:










