关于php调用open-flash-chart-2php 调用开源的 open-flash-chart.swf
遇到一个问题生成线型图的时候会用到 OFC_Charts_Line 这个类
这个类里面有一个 set_values 方法比如像下面的代码
图表能正常显示
$chart = new OFC_Chart();
$data = array(17,15,21,32);
$charts_Line = new OFC_Charts_Line();
$charts_Line->set_values($data);
$chart->add_element($charts_Line);如果用下面的代码
$result = $db->getData(); --数据库检索的结果(假如有1条记录的话)
$chart = new OFC_Chart();
$data = array(17,$result[0]["num"],21,32);
$charts_Line = new OFC_Charts_Line();
$charts_Line->set_values($data);
$chart->add_element($charts_Line);
这样写的话图表不能够正常显示请高手指点下是什么原因啊
唯一的区别就是一个是写死的数组 $data = array(17,15,21,32);
另一个是动态取值的数组 $data = array(17,$result[0]["num"],21,32);
遇到一个问题生成线型图的时候会用到 OFC_Charts_Line 这个类
这个类里面有一个 set_values 方法比如像下面的代码
图表能正常显示
$chart = new OFC_Chart();
$data = array(17,15,21,32);
$charts_Line = new OFC_Charts_Line();
$charts_Line->set_values($data);
$chart->add_element($charts_Line);如果用下面的代码
$result = $db->getData(); --数据库检索的结果(假如有1条记录的话)
$chart = new OFC_Chart();
$data = array(17,$result[0]["num"],21,32);
$charts_Line = new OFC_Charts_Line();
$charts_Line->set_values($data);
$chart->add_element($charts_Line);
这样写的话图表不能够正常显示请高手指点下是什么原因啊
唯一的区别就是一个是写死的数组 $data = array(17,15,21,32);
另一个是动态取值的数组 $data = array(17,$result[0]["num"],21,32);
有可能是数据类型的原因,建议将$data = array(17,$result[0]["num"],21,32);修改为 $data = array(17,intval($result[0]["num"]),21,32);这样就能保证数组元素全部都是数字类型,楼主试一下
在这个下面加两句
echo $result[0]['num']."<br>\n";
var_dump($data);
看看数据是否正常,看看数据类型是什么。
$data = array(17,$result[0]["num"],21,32);
这个数组打印出来数据类型确实是正确的
比如 $result[0]["num"] 是 25 的时候
打印出来的 $data 是 [17,25,21,32]
是数字类型的就是放到
$charts_Line->set_values($data);
貌似不能识别
简直怪异啊另外我没用 intval
我用的是 + 0 处理
这个应该是一个效果的
然后把json文件作为参数读入看怎么样
缺点就是会生成会多文件的样子
不过功能是可以实现了
while ($row=mysql_fetch_array($result)){
$number[]=$row["number"];
}for($i=0;$i<$rowCount;$i++)
{
$dis_value[]=intval($number[$i]);
}这里的$rowCount代表数据的行数;$number代表你需要取的那一列的数组$line_dot->set_values($dis_value);应该很明了了吧