Open Flash Chart + PHP + Mysql生(shēng)成動态圖表
- 作(zuò)者:admin
- 發表時(shí)間(jiān):2013-07-02 14:17:28
- 來(lái)源:未知
前面文章我簡單介紹了Open Flash Chart2(OFC)的使用方法,本文将以筆者做(zuò)過的實際項目為(wèi)例,介紹通(tōng)過PHP讀取MYSQL數(shù)據庫裏的數(shù)據,然後生(shēng)成JSON數(shù)據,再通(tōng)過FLASH渲染成漂亮的動态餅狀圖的方法。
1、在HTML頁面的head标簽之間(jiān)加入以下代碼:
注意:與上(shàng)一張不同的是我們使用的數(shù)據源文件:area_pie.php,該文件就是用來(lái)将MYSQL數(shù)據生(shēng)成JSON數(shù)據的。其他的都跟上(shàng)一篇文章介紹的一樣,請(qǐng)參照Open Flash Chart 超強的圖表生(shēng)成組件。
2、在body中加入載入圖表的HTML元素。
3、準備PHP庫。
我們知道(dào)OFC提供了各種接口程序,包括PHP/PHP5、Pear、Python、Java、Dotnet。
我們将從官網上(shàng)下載的壓縮包文件解壓後發現有(yǒu)一個(gè)名為(wèi)php-ofc-library文件夾,這裏放的就是PHP接口的所有(yǒu)庫文件,不用管裏面的文件,隻需把整個(gè)文件夾複制(zhì)到你(nǐ)的項目的根目錄下并改名為(wèi)ofc。
4、讀取mysql生(shēng)成JSON數(shù)據
這是關鍵部分,調用mysql數(shù)據庫接口的部分代碼大(dà)家(jiā)可(kě)以自己寫下,限于篇幅,本文就沒有(yǒu)将其附上(shàng)。
area_pie.php代碼如下:
include_once ('global.php'); //調用數(shù)據庫 include_once ('ofc/open-flash-chart.php'); //調用OFC庫文件 //設置圖表标題 $title = new title( '各區(qū)域單位場(chǎng)所數(shù)量分布圖'.date('Y-m-d') ); $title->set_style("font-size:12px; font-weight:bold;"); $pie = new pie(); $pie->set_alpha(0.6); $pie->set_start_angle( 32 ); $pie->add_animation( new pie_fade() ); $pie->set_tooltip( '#val# of #total# #percent# of 100%' ); $pie->set_colours( array('#1C9E05','#FF368D','#0099cc','#d853ce','#ff7400','#006e2e', '#d15600','#4096ee','#c79810') ); //讀取各區(qū)域信息 $sql="select sum(total) as num from ".$prefix."district"; $query=$db->query($sql); $rs=$db->fetch_array($query); $t=$rs[num]; $sql="select name,total from ".$prefix."district"; $query=$db->query($sql); while($row=$db->fetch_array($query)){ $total=$row[total]; if(!empty($t)){ $v=round($total/$t,4)*100; }else{ $v=0; } $dis[]=array("name"=>$row[name],"total"=>$row[total],"v"=>$v); } $len_dis=count($dis); for($i=0;$i<$len_dis;$i++){ $dis_value[]=new pie_value(intval($dis[$i][total]),$dis[$i][name]."(".$dis[$i][v]."%)"); } $pie->set_values($dis_value); $chart = new open_flash_chart(); $chart->set_title( $title ); $chart->add_element( $pie ); $chart->x_axis = null; echo $chart->toPrettyString(); //生(shēng)成json數(shù)據
聯系我們
一切良好工作(zuò)的開(kāi)始,都需相互之間(jiān)的溝通(tōng)搭橋,歡迎咨詢。