In this article, we will learn how to make a google line chart. We will fetch the data from the database and show it as a line chart.



Database structure

We need some data to show in a line chart. Create a database and import the following code in your PHPMyAdmin.


-- phpMyAdmin SQL Dump
-- version 5.0.4
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Feb 03, 2021 at 11:51 PM
-- Server version: 10.4.17-MariaDB
-- PHP Version: 7.4.14

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `my-tutorial`
--

-- --------------------------------------------------------

--
-- Table structure for table `my_chart`
--

CREATE TABLE `my_chart` (
  `id` int(11) NOT NULL,
  `year` int(11) NOT NULL,
  `sales` int(250) NOT NULL,
  `expenses` int(250) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `my_chart`
--

INSERT INTO `my_chart` (`id`, `year`, `sales`, `expenses`) VALUES
(1, 2017, 20, 20000),
(2, 2021, 10, 200000),
(3, 2017, 20, 20000),
(4, 2021, 10, 200000);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `my_chart`
--
ALTER TABLE `my_chart`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `my_chart`
--
ALTER TABLE `my_chart`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


Database connection

create the config.php and put the following code to connect to the database.


<?php

$host = "localhost"; 
$user = "root"; 
$password = ""; 
$dbname = "my-tutorial"; 

$con = mysqli_connect($host, $user, $password, $dbname);
// Check connection
if (!$con) {
    die("Connection failed: " . mysqli_connect_error());
}

?>


Line Chart

Include the config.php, which database connection file and fetch data and show in the line chart. Note that don't forget to add your maps API key.


<?php
include "config.php";
?>
<html>
    <head>
        <title>Generate Line Chart in PHP</title>
        <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
        <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
        <style>
            body{
                background: #ccc;
                
            }
            
            #my-chart{
                background: #fff;
                padding: 20px;
            }
            
        </style>
    </head>
    <body>

        <div id="my-chart" style="width: 100%; height: 400px;"></div>
        <script type="text/javascript">
            google.charts.load('current', {
                'packages': ['corechart'],
                'mapsApiKey': ''   // her eyou can put you google map key
            });
            google.charts.setOnLoadCallback(drawRegionsMap);

            function drawRegionsMap() {
                var data = google.visualization.arrayToDataTable([
                    ['Year', 'Sales', 'Expenses'],
                     <?php
                     $chartQuery = "SELECT * FROM my_chart";
                     $chartQueryRecords = mysqli_query($con, $chartQuery);
                        while($row = mysqli_fetch_assoc($chartQueryRecords)){
                            echo "['".$row['year']."',".$row['sales'].",".$row['expenses']."],";
                        }
                     ?>
                ]);

                var options = {
                   
                };

                var chart = new google.visualization.LineChart(document.getElementById('my-chart'));
                chart.draw(data, options);
            }
        </script>
    </head>
</body>
</html>


Output: