RELATEED CONSULTING
相關咨詢
選擇下列産品馬上(shàng)在線溝通(tōng)
服務時(shí)間(jiān):9:00-18:00
你(nǐ)可(kě)能遇到了下面的問題
關閉右側工具欄
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ù)據