Table of Contents
PHP MySQL Google Chart JSON - Complete Example
Home Backend Development PHP Tutorial How to Generate Google Charts (Pie, Bar, Column, and Table) Using PHP, MySQL, and JSON?

How to Generate Google Charts (Pie, Bar, Column, and Table) Using PHP, MySQL, and JSON?

Nov 16, 2024 pm 02:03 PM

How to Generate Google Charts (Pie, Bar, Column, and Table) Using PHP, MySQL, and JSON?

PHP MySQL Google Chart JSON - Complete Example

Using MySQL table data as a data source to generate Google Chart, I found many examples. I searched for a few days and found that there are very few examples on the Internet that use PHP and MySQL to generate Google Charts (pie charts, bar charts, bar charts, tables). I finally found an example that works.

I have received a lot of help from StackOverflow before, so I want to give back this time.

I have two examples, one with Ajax and one without. Today, I'll only show non-Ajax examples.

Usage:

  • Requirements: PHP, Apache and MySQL
  • Installation:

    • Create a database using phpMyAdmin and name it "chart"
    • Create a table using phpMyAdmin and name it "googlechart" and make sure it only has two columns because I used two columns . However, if you want to use more columns, you can also make slight modifications to the code as instructed
    • Specify the column names as follows: "weekly_task" and "percentage"
    • Insert in the table For some data, only numbers can be used in the field "_percentage_"

Example of PHP-MySQL-JSON-Google Chart:

<?php
$con=mysql_connect("localhost","Username","Password") or die("Failed to connect with database!!!!");
mysql_select_db("資料庫名稱", $con); 
// Google Chart 表格包含兩個欄位,分別是 weekly_task 和 percentage
// 這個範例將顯示一個圓餅圖,如果你需要其他的圖表例如長條圖,你必須對程式碼做一些微幅的調整,才能與長條圖或其他圖表搭配
$sth = mysql_query("SELECT * FROM chart");

/*
---------------------------
範例資料:表格 (Chart)
--------------------------
weekly_task     percentage
Sleep           30
Watching Movie  40
work            44
*/

// flag 不需要
$flag = true;
$table = array();
$table['cols'] = array(

    // 圖表的標籤,代表欄位標題
    // 注意,一個欄位使用 "string" 格式,另一個使用 "number" 格式,因為圓餅圖只使用 "數字" 來計算百分比,字串則用於欄位標題
    array('label' => 'Weekly Task', 'type' => 'string'),
    array('label' => 'Percentage', 'type' => 'number')

);

$rows = array();
while($r = mysql_fetch_assoc($sth)) {
    $temp = array();
    // 下列程式碼用於分割圓餅圖
    $temp[] = array('v' => (string) $r['Weekly_task']); 

    // 每一個分塊的值
    $temp[] = array('v' => (int) $r['percentage']); 
    $rows[] = array('c' => $temp);
}

$table['rows'] = $rows;
$jsonTable = json_encode($table);
//echo $jsonTable;
?>

<html>
  <head>
    <!--載入 Ajax API-->
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script type="text/javascript">

    // 載入視覺化 API 及圓餅圖套件。
    google.load('visualization', '1', {'packages':['corechart']});

    // 設定一個 callback 在 Google Visualization API 載入時執行。
    google.setOnLoadCallback(drawChart);

    function drawChart() {

      // 從伺服器載入的 JSON 資料中,建立我們的資料表格。
      var data = new google.visualization.DataTable(<?=$jsonTable?>);
      var options = {
           title: '我的每週計畫',
          is3D: 'true',
          width: 800,
          height: 600
        };
      // 使用部分選項,實例化並繪製我們的圖表。
      // 別忘了檢查你的 div ID
      var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
      chart.draw(data, options);
    }
    </script>
  </head>

  <body>
    <!--這是會放置圓餅圖的 div-->
    <div>
Copy after login

Example of PHP-PDO-JSON-MySQL-Google Chart:

<?php
    /*
    指令碼  : PHP-PDO-JSON-mysql-googlechart
    作者  : Enam Hossain
    版本 : 1.0

    */

    /*
    --------------------------------------------------------------------
    使用方式:
    --------------------------------------------------------------------

    需求:PHP、Apache 及 MySQL

    安裝:
      --- 使用 phpMyAdmin 建立一個資料庫,並將其命名為 "chart"
      --- 使用 phpMyAdmin 建立一個表格,並將其命名為 "googlechart",並確保它只有兩欄,因為我使用了兩欄。不過,如果你想用更多欄,也可以按照指示對程式碼做些微的修改
      --- 指定欄位名稱如下:"weekly_task" 和 "percentage"
      --- 在表格中插入一些資料
      --- _percentage_ 欄位只能使用數字

          ---------------------------------
          範例資料:表格 (googlechart)
          ---------------------------------

          weekly_task     percentage
          -----------     ----------

          Sleep           30
          Watching Movie  10
          job             40
          Exercise        20     


    */

    /* 資料庫名稱 */
    $dbname = 'chart';

    /* 資料庫使用者名稱與密碼 */
    $username = 'root';
    $password = '123456';

    try {
      /* 建立資料庫連線 */
      $conn = new PDO("mysql:host=localhost;dbname=$dbname", $username, $password);
      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

      /* 從 googlechart 表格中選出所有 weekly tasks */
      $result = $conn->query('SELECT * FROM googlechart');

      /*
          ---------------------------
          範例資料:表格 (googlechart)
          --------------------------
          weekly_task     percentage
          Sleep           30
          Watching Movie  10
          job             40
          Exercise        20       
      */



      $rows = array();
      $table = array();
      $table['cols'] = array(

        // 圖表的標籤,代表欄位標題。
        /* 
            注意,一個欄位使用 "string" 格式,另一個使用 "number" 格式,因為圓餅圖只使用 "數字" 來計算百分比,字串則用於分塊標題
        */

        array('label' => 'Weekly Task', 'type' => 'string'),
        array('label' => 'Percentage', 'type' => 'number')

    );
        /* 抽取 $result 中的資訊 */
        foreach($result as $r) {

          $temp = array();

          // 下列程式碼用於分割圓餅圖

          $temp[] = array('v' => (string) $r['weekly_task']); 

          // 每一個分塊的值

          $temp[] = array('v' => (int) $r['percentage']); 
          $rows[] = array('c' => $temp);
        }

    $table['rows'] = $rows;

    // 將資料轉換成 JSON 格式
    $jsonTable = json_encode($table);
    //echo $jsonTable;
    } catch(PDOException $e) {
        echo '錯誤:' . $e->getMessage();
    }

    ?>


    <html>
      <head>
        <!--載入 Ajax API-->
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script type="text/javascript">

        // 載入視覺化 API 及圓餅圖套件。
        google.load('visualization', '1', {'packages':['corechart']});

        // 設定一個 callback 在 Google Visualization API 載入時執行。
        google.setOnLoadCallback(drawChart);

        function drawChart() {

          // 從伺服器載入的 JSON 資料中,建立我們的資料表格。
          var data = new google.visualization.DataTable(<?=$jsonTable?>);
          var options = {
               title: '我的每週計畫',
              is3D: 'true',
              width: 800,
Copy after login

The above is the detailed content of How to Generate Google Charts (Pie, Bar, Column, and Table) Using PHP, MySQL, and JSON?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

How does session hijacking work and how can you mitigate it in PHP? How does session hijacking work and how can you mitigate it in PHP? Apr 06, 2025 am 12:02 AM

Session hijacking can be achieved through the following steps: 1. Obtain the session ID, 2. Use the session ID, 3. Keep the session active. The methods to prevent session hijacking in PHP include: 1. Use the session_regenerate_id() function to regenerate the session ID, 2. Store session data through the database, 3. Ensure that all session data is transmitted through HTTPS.

Describe the SOLID principles and how they apply to PHP development. Describe the SOLID principles and how they apply to PHP development. Apr 03, 2025 am 12:04 AM

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How to debug CLI mode in PHPStorm? How to debug CLI mode in PHPStorm? Apr 01, 2025 pm 02:57 PM

How to debug CLI mode in PHPStorm? When developing with PHPStorm, sometimes we need to debug PHP in command line interface (CLI) mode...

Framework Security Features: Protecting against vulnerabilities. Framework Security Features: Protecting against vulnerabilities. Mar 28, 2025 pm 05:11 PM

Article discusses essential security features in frameworks to protect against vulnerabilities, including input validation, authentication, and regular updates.

How to automatically set permissions of unixsocket after system restart? How to automatically set permissions of unixsocket after system restart? Mar 31, 2025 pm 11:54 PM

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

What are Enumerations (Enums) in PHP 8.1? What are Enumerations (Enums) in PHP 8.1? Apr 03, 2025 am 12:05 AM

The enumeration function in PHP8.1 enhances the clarity and type safety of the code by defining named constants. 1) Enumerations can be integers, strings or objects, improving code readability and type safety. 2) Enumeration is based on class and supports object-oriented features such as traversal and reflection. 3) Enumeration can be used for comparison and assignment to ensure type safety. 4) Enumeration supports adding methods to implement complex logic. 5) Strict type checking and error handling can avoid common errors. 6) Enumeration reduces magic value and improves maintainability, but pay attention to performance optimization.

See all articles