Open Flash Chart + PHP + Mysql生成动态图表

前面文章我简单介绍了Open Flash Chart2(OFC)的使用方法,本文将以笔者做过的实际项目为例,介绍通过PHP读取MYSQL数据库里的数据,然后生成JSON数据,再通过FLASH渲染成漂亮的动态饼状图的方法。

1、在HTML页面的head标签之间加入以下代码:

  1. <script type="text/javascript" src="js/swfobject.js"></script> 
  2. <script type="text/javascript"> 
  3. var flashvars = {"data-file":"area_pie.php"}; //这里是数据源  
  4. var params = {menu: "false",scale: "noScale",wmode:"opaque"};  
  5. swfobject.embedSWF("open-flash-chart.swf", "chart", "550px", "350px", 
  6.  "9.0.0","expressInstall.swf", flashvars,params);  
  7. </script> 

注意:与上一张不同的是我们使用的数据源文件:area_pie.php,该文件就是用来将MYSQL数据生成JSON数据的。

2、在body中加入载入图表的HTML元素。

  1. <div id="chart"></div>  

3、准备PHP库。

我们知道OFC提供了各种接口程序,包括PHP/PHP5、Pear、Python、Java、Dotnet。

我们将从官网上下载的压缩包文件解压后发现有一个名为php-ofc-library文件夹,这里放的就是PHP接口的所有库文件,不用管里面的文件,只需把整个文件夹复制到你的项目的根目录下并改名为ofc。

4、读取mysql生成JSON数据

这是关键部分,调用mysql数据库接口的部分代码大家可以自己写下,限于篇幅,本文就没有将其附上。

area_pie.php代码如下:

  1. include_once ('global.php');  //调用数据库 
  2. include_once ('ofc/open-flash-chart.php'); //调用OFC库文件 
  3. //设置图表标题 
  4. $title = new title( '各区域单位场所数量分布图'.date('Y-m-d') ); 
  5. $title->set_style("font-size:12px; font-weight:bold;"); 
  6. $pie = new pie(); 
  7. $pie->set_alpha(0.6); 
  8. $pie->set_start_angle( 32 ); 
  9. $pie->add_animation( new pie_fade() ); 
  10. $pie->set_tooltip( '#val# of #total# 
  11. #percent# of 100%' ); 
  12. $pie->set_colours( array('#1C9E05','#FF368D','#0099cc','#d853ce','#ff7400','#006e2e'
  13. '#d15600','#4096ee','#c79810') ); 
  14. //读取各区域信息 
  15. $sql="select sum(total) as num from ".$prefix."district"
  16. $query=$db->query($sql); 
  17. $rs=$db->fetch_array($query); 
  18. $t=$rs[num]; 
  19. $sql="select name,total from ".$prefix."district"
  20. $query=$db->query($sql); 
  21. while($row=$db->fetch_array($query)){ 
  22.     $total=$row[total]; 
  23.     if(!empty($t)){ 
  24.         $v=round($total/$t,4)*100; 
  25.     }else
  26.         $v=0; 
  27.     } 
  28.     $dis[]=array("name"=>$row[name],"total"=>$row[total],"v"=>$v); 
  29. $len_dis=count($dis); 
  30. for($i=0;$i<$len_dis;$i++){ 
  31.     $dis_value[]=new pie_value(intval($dis[$i][total]),$dis[$i][name]."(".$dis[$i][v]."%)"); 
  32. $pie->set_values($dis_value); 
  33.  
  34. $chart = new open_flash_chart(); 
  35. $chart->set_title( $title ); 
  36. $chart->add_element( $pie ); 
  37. $chart->x_axis = null; 
  38. echo $chart->toPrettyString(); //生成json数据 

转载请注明:代码家园 » Open Flash Chart + PHP + Mysql生成动态图表

也许你会喜欢和关注与本文内容高度相关的文章:

应用实例:PHP生成图表pChart(附源码)

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)