广

PHP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-03 19:59:29 次阅读 稿源:月光光
    零七广告

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

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

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

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

    注意:与上一张不同的是我们使用的数据源文件:area_pie.php,该文件就是用来将MYSQL数据生成JSON数据的。其他的都跟上一篇文章介绍的一样,请参照Open Flash Chart 超强的图表生成组件。

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

    <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代码如下:

    include_once ('global.php');  //调用数据库
    include_once ('ofc/open-flash-chart.php'); //调用OFC库文件
    //设置图表标题
    $title = new title( '各区域单位场所数量分布图'.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') );
    //读取各区域信息
    $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(); //生成json数据

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告