php将数据库数据转换成图表,如何用PHP通过拼接数据到显示在数据库图表上

我这里用的是eCharts数据库图标,网址为:http://echarts.baidu.com/index.html 。

1)接收表单的数据,然后用json_encode()对接收的数据进行处理

2)在js中进行拼接并用eval()函数执行,主要是要对接受的数据中重复的键进行合并,并计算出含该同样键的数目,

比如我这里的在数据库中含5条数据,就像这样[  {'id':'1' , 'temperatrue':'30'},{'id':'2' , 'temperatrue':'30'},{'id':'3' , 'temperatrue':'30'},{'id':'4' , 'temperatrue':'33'},{'id':'5' , 'temperatrue':'33'}]   然后经过函数处理后变为[ {'num':'3','name':'30'},{'num':'2','name':'33'} ],变成了其对应的健名对应的数目

说多无益,代码如下:

数据图表

/*功能:接受参数 并进行圆饼图展示

**POST的参数:

** $start_time(开始时间)$end_time(结束时间)

** $user_id (我用了客户的自增id标记记录所以这里是自增id)

** $data_type(数据类型分别对应数据库上的3个字段名:temperature wetness methane 其分别对应温度 湿度 甲烷浓度 )

** $data_sign(数据后面的符号 如temperature对应℃)

*/

include('./conn/conn.php');

$start_time = trim(addslashes($_POST['start_time']));

$end_time = trim(addslashes($_POST['end_time']));

$user_id = trim(addslashes($_POST['user_id']));

$data_type = trim(addslashes($_POST['data_type']));

$data_sign = iconv("gb2312", "UTF-8", $_POST['data_sign']); //转码 因为乱码了

//echo $data_sign."6666";

$conn = mysql_open();

$sql = "select * from echub where add_time>='".$start_time."' and add_time<='".$end_time."' and user_id='".$user_id."' order by ".$data_type;

$res = $conn -> getAll($sql);

//var_dump($res);

$res = (json_encode($res)); //要经过json才能在js使用

$data_type = (json_encode($data_type));

$data_sign = (json_encode($data_sign));

echo $data_type;

?>

var data1 = "["; //拼接第一个数据

var data = <?php echo $res ?>;

//alert("666");

//alert(data);

var data_type = <?php echo $data_type ?>;

//alert("666");

var data_sign = <?php echo $data_sign ?>;

var result = (typeof data == 'string') ? JSON.parse(data) : data;

//document.write(result[0]['temperature']+result.length);//测试

for(var i=0; i < result.length; i++){

if(i == 0){

data1 += "'"+result[i][data_type]+""+data_sign+"'"; //data1 += "'"+result[i][data_type]+"℃'";

}else{

data1 += ",'"+result[i][data_type]+""+data_sign+"'";

}

}

data1 += "]";

// alert(data1);

// document.write(data1);

var Value = "["; //用于拼接data中的value

var data_all = "["; //拼接显示的圆饼图核心数据

//var arr1 = "['30℃','30℃','30℃','30℃','31℃','32℃','32℃']";

var ary = eval(data1);

var res = [];

ary.sort();

for(var i = 0;i

{

var count = 0;

for(var j=i;j

{

if(ary[i] == ary[j])

{

count++;

}

}

res.push([ary[i],count]);

i+=count;

}

for(var i = 0; i < res.length; i++){

if(i == 0){

Value += "'"+res[i][0]+"'";

}else{

Value += ",'"+res[i][0]+"'";

}

}

Value += "]";

Value = eval(Value);

for(var i = 0; i < res.length; i++){

if(i == 0){

data_all += "{value:"+res[i][1]+",name:'"+res[i][0]+"'}";

}else{

data_all += ",{value:"+res[i][1]+",name:'"+res[i][0]+"'}";

}

}

data_all += "]";

data_all = eval(data_all);

// 路径配置

require.config({

paths: {

echarts: 'http://echarts.baidu.com/build/dist'

}

});

// 使用

require(

[

'echarts',

'echarts/chart/pie' // 使用柱状图就加载bar模块,按需加载

],

function (ec) {

// 基于准备好的dom,初始化echarts图表

var myChart = ec.init(document.getElementById('main'));

var option = {

title : {

text: 'echub',

subtext: '纯属虚构',

x:'center'

},

tooltip : {

trigger: 'item',

formatter: "{a}
{b} : {c} ({d}%)"

},

legend: {

orient : 'vertical',

x : 'left',

data: Value //['30℃','31℃','32℃','33℃','34℃']

},

calculable : true,

series : [

{

name:'访问来源',

type:'pie',

radius : '55%',

center: ['50%', '60%'],

data: data_all

}

]

};

// 为echarts对象加载数据

myChart.setOption(option);

}

);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 HTML 网页上更改 Echarts 图表数据,可以使用 PHP 配置文件。具体实现步骤如下: 1. 在 HTML 网页中,使用 Ajax 技术从 PHP 文件中获取数据。可以使用 jQuery 的 $.ajax() 函数来实现。例如: ```js $.ajax({ url: "get_data.php", type: "GET", dataType: "json", success: function(data) { // 更新 Echarts 图表数据 myChart.setOption({ series: [{ data: data }] }); } }); ``` 上面的代码中,通过 GET 方法从 `get_data.php` 文件中获取数据,并将数据解析成 JSON 格式。获取成功后,更新 Echarts 图表数据。 2. 在 PHP 文件中,连接数据库或者读取本地文件等方式获取数据,并将数据返回给 HTML 网页。例如: ```php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); // 从数据库中获取数据 $sql = "SELECT value FROM mytable"; $result = $conn->query($sql); $data = array(); while ($row = $result->fetch_assoc()) { $data[] = $row["value"]; } // 将数据编码为 JSON 格式并返回给 HTML 网页 echo json_encode($data); $conn->close(); ``` 上面的代码中,使用 mysqli 连接数据库,并从 `mytable` 表中获取 `value` 字段的数据。获取成功后,将数据编码为 JSON 格式并返回给 HTML 网页。 注意,为了保证安全性,需要在 PHP 文件中进行参数过滤和验证,以防止 SQL 注入和 XSS 攻击等安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值