Home  >  Article  >  Backend Development  >  How to display real-time statistical charts through ECharts and php interfaces

How to display real-time statistical charts through ECharts and php interfaces

WBOY
WBOYOriginal
2023-12-17 16:35:431113browse

How to display real-time statistical charts through ECharts and php interfaces

How to display real-time statistical charts through ECharts and PHP interfaces

With the rapid development of the Internet and big data technology, data visualization has become an important part. As an excellent open source JavaScript data visualization library, ECharts can help us display various statistical charts simply and efficiently. This article will introduce how to display real-time statistical charts through ECharts and PHP interfaces, and provide relevant code examples.

1. Preparation
Before we start, we need to do some preparations:

  1. Install the ECharts library: You can download it from the official website of ECharts (http://echarts.apache .org/) to download the latest version of the ECharts library and introduce it into the project.
  2. Install PHP environment: We need to build a simple PHP environment to provide a data interface. You can install an integrated development environment such as XAMPP or WAMP, or build a LAMP environment on a Linux server.

2. Create database and data table
For the convenience of demonstration, we use a simple example here, assuming that we want to display the number of orders per hour. First, we need to create a data table in the MySQL database to save order data.

CREATE TABLE `orders` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `time` datetime DEFAULT NULL,
  `count` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

This table contains three fields, namely order ID, order time and order quantity.

3. Write PHP interface
Create a new file named "api.php" in the PHP project to process the logic of the data interface. Through this interface, we can obtain the latest order data. Here is a simple example:

<?php
// 引入数据库配置文件
include('config.php');

// 连接数据库
$conn = mysqli_connect($db_host, $db_user, $db_password, $db_name);
if (!$conn) {
    die("连接数据库失败: " . mysqli_connect_error());
}

// 获取最新的订单数据
$sql = "SELECT * FROM orders ORDER BY time DESC LIMIT 1";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);

// 返回JSON格式的订单数据
echo json_encode($row);

// 关闭数据库连接
mysqli_close($conn);
?>

This code first connects to the database, then queries the latest order data and returns it in JSON format.

4. Write the front-end page
Next, we need to introduce the ECharts library into the front-end page and realize the display of real-time statistical charts. Suppose we name the page "index.php". Here is a simple example:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>实时统计图展示</title>
    <!-- 引入ECharts库 -->
    <script src="echarts.min.js"></script>
</head>
<body>
    <!-- 统计图容器 -->
    <div id="chart" style="height: 400px;"></div>

    <!-- JavaScript代码 -->
    <script>
        // 创建ECharts实例
        var myChart = echarts.init(document.getElementById('chart'));

        // 定义初始数据
        var data = [];

        // 请求接口获取数据
        function fetchData() {
            // 发送HTTP请求
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    var result = JSON.parse(xmlhttp.responseText);
                    var time = new Date(result.time);
                    var count = result.count;

                    // 更新数据
                    data.push({
                        name: time.getHours() + ':00',
                        value: count
                    });

                    // 显示统计图
                    myChart.setOption({
                        xAxis: {
                            data: data.map(function(item) {
                                return item.name;
                            })
                        },
                        series: [{
                            data: data.map(function(item) {
                                return item.value;
                            })
                        }]
                    });
                }
            };
            xmlhttp.open("GET", "api.php", true);
            xmlhttp.send();
        }

        // 循环调用接口,以实现实时刷新
        setInterval(fetchData, 1000);
    </script>
</body>
</html>

This HTML code first introduces the ECharts library and creates a container in the page to display statistical charts. Then through JavaScript code, the HTTP request interface is implemented, the latest order data is obtained, and added to the data. Finally, the setOption method of ECharts is used to display the statistical chart. In order to achieve the real-time refresh effect, we use JavaScript's setInterval function to call the interface every second.

5. Run the project
Open the "index.php" page in the browser, and you can see the display of real-time statistical charts. Every second, the page will send a request to the backend to obtain the latest order data and add it to the chart for display.

Summary: Through the introduction of this article, we have learned how to display real-time statistical charts through ECharts and PHP interfaces. By constantly obtaining the latest data and updating charts, we are able to monitor and display data changes in real time. This has important implications for data analysis and business decision-making.

(Note: The above code examples are for reference only, the specific implementation will be adjusted according to the actual situation)

The above is the detailed content of How to display real-time statistical charts through ECharts and php interfaces. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn