Devdit
 

กราฟ PHP MySQL

1.5K

กราฟ PHP MySQL บทความนี้สอนเขียนโค้ดภาษา PHP ดึงข้อมูลจากฐานข้อมูล MySQL มาแสดงในรูปแบบของกราฟด้วย Chart.js โดยเป็นการแสดงกราฟแท่ง (Bar Graphs) พร้อมแสดงผลลัพธ์ออกสู่หน้าจอ สามารถเขียนโปรแกรมได้ดังนี้

 

ตัวอย่าง กราฟ PHP MySQL

1. สร้างฐานข้อมูลชื่อ demo พร้อมรันคำสั่ง SQL สร้างตารางชื่อ product พร้อมเพิ่มข้อมูลทั้งหมด 3 ข้อมูล

CREATE TABLE `product` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` char(50) COLLATE utf8mb4_general_ci NOT NULL,
  `amount` int NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
INSERT INTO `product` (`id`, `name`, `amount`) VALUES
(1, 'apple', 4),
(2, 'banana', 7),
(3, 'orange', 2);

 

2. ติดตั้ง Chart.js โดยการวางลิงก์ไว้ภายในแท็ก body ของเว็บไซต์ พร้อมสร้าง canvas เพื่อแสดงกราฟบนเว็บไซต์ id = chart

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

 

3. เขียนโค้ด PHP เชื่อมต่อฐานข้อมูล MySQL และดึงข้อมูลมาเก็บไว้ที่ตัวแปร product ชนิด array ประกอบด้วย columns id, name และ amount

<?php
    $product = array();
    $c = mysqli_connect("localhost", "root", "", "demo");
    mysqli_query( $c, "SET NAMES UTF8" );
    $sql = " SELECT * FROM product ";
    $q = mysqli_query( $c, $sql );
    if( $q ) {
        while( $f = mysqli_fetch_assoc( $q )) {
            $product['id'][] = $f['id'];
            $product['name'][] = $f['name'];
            $product['amount'][] = $f['amount'];
        }
    }
    mysqli_close( $c );
?>

 

4. นำตัวแปร product ไปแสดงผลในกราฟแท่ง ประกอบด้วย columns name และ amount เก็บข้อมูลไว้ที่ตัวแปร config ของ JavaScript

<script>
  const labels = [
    <?php
        for( $i=0; $i<count($product['id']); $i++ ) {
            echo "'".$product['name'][$i]."',";
        }
    ?>
  ];

  const data = {
    labels: labels,
    datasets: [{
      label: 'กราฟ PHP MySQL',
      backgroundColor: [
        'rgb(228, 81, 81)',
        'rgb(81, 228, 179)',
        'rgb(81, 149, 228)',  
      ],
      data: [
        <?php
            for( $i=0; $i<count($product['id']); $i++ ) {
                echo "'".$product['amount'][$i]."',";
            }
        ?>        
      ],
    }],
    hoverOffset: 4,
  };

  const config = {
    type: 'bar',
    data: data,

  };
</script>

 

5. นำตัวแปร config มาแสดงผลเป็นกราฟที่แท็ก canvas id = chart

<script>
  const myChart = new Chart(
    document.getElementById('chart'),
    config
  );
</script>
แก้ไข 1 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ