php原生态与百度echarts联合制作数据图表

64 篇文章 4 订阅
1 篇文章 1 订阅

php原生态与百度echarts联合制作饼状图:

需要的文件如下:
1、switch.php 这个是转换文件,也是主要的显示区域;
2、connect.php 这个是数据库连接文件;

以下是switch.php文件:

<?php 
session_start();
// 把表名文件名保存到session,带到文件导出页面备用
$_SESSION['titlesql']='ip';
$_SESSION['contentsql']=$sql;
$_SESSION['fileName']=$commit;

// 引入数据库链接文件
include_once 'connect.php';
//获取上一个页面,选择要查询的字段
$page=$_POST['page']?$_POST['page']:$_GET['page'];
//默认展示5条数据
$num=$_POST['num']?$_POST['num']:5;
$commit=$_GET['commit']?$_GET['commit']:$_POST['commit'];

// 执行SQL语句查询数据,取别名分别为name和value,这个是echarts里面的指定数据名称
$sql='select '.$page.' name,count(id) value from ip group by name order by value desc limit '.$num;

// 执行查询语句,返回对象
$rest=$pdo->query($sql);
// 获取数据
$rows=$rest->fetchAll();

// 取出数组中name这一列的值,作为echarts的饼名字
$ip=json_encode(array_column($rows, 'name'));       //名字
$ips=json_encode($rows) ;       //名字和值

?>
<!DOCTYPE html>
<html>

<head>
    <!-- ECharts单文件引入 -->
    <script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
            <div id="main"></div>
            <div class="choose">
                <form class="form-horizontal" action="switch.php" method="post" role="form">
                    <div class="form-group">
                            <label for="inputEmail3" class="col-sm-2 control-label">显示项数:</label>
                            <input type="text" class="form-control" name="num" id="inputEmail3" placeholder="默认前五">
                            <input type="hidden" name="page" value="<?php echo $page ?>">
                            <input type="hidden" name="commit" value="<?php echo $commit ?>">
                            <input type="submit" value="提交">
                    </div>
                    <div class="form-group">
                            <a href="func/excel.class.php" class="btn">导出excel文件</a>
                    </div>
                </form>
            </div>
</body>
<script type="text/javascript">
        // 基于准备好的dom,初始化echarts图表
        var myChart = ec.init(document.getElementById('main'));

        option = {
            title: {
                text: '<?php echo $commit ?>',
                subtext: '阳水平测试',
                x: 'center'
            },
            tooltip: {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            legend: {
                orient: 'vertical',
                x: '0%',
                y: '10%',
                data: <?php echo $ip ?>
            },
            toolbox: {
                show: true,
                feature: {
                    dataView: {
                        show: true,
                        readOnly: false
                    },
                    saveAsImage: {
                        show: true
                    }
                }
            },
            calculable: true,
            series: [{
                name: '访问来源',
                type: 'pie',
                radius: '55%',
                center: ['65%', '60%'],
                data:<?php echo $ips; ?>
            }]
        };


        // 为echarts对象加载数据 
        myChart.setOption(option);
</script>

</html>

以下是connect.php文件:

<?php 
try{
        $pdo=new PDO('mysql:host=localhost;dbname=dh_access','root','123456');
}catch(PDOException $e){
        die($e->getMessage());
}
    // 连接数据库,设置字符集
$pdo->exec('set names utf8');

    // 设置获取数据格式,之后取数据都按照索引数组取值
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
    // echo "数据库连接成功";

效果图如下,右键》在新标签中打开图片,可以查看大图
效果图如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SHUIPING_YANG

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值