Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengisi data grup ke seri tertentu di Highcharts

Dengan melihat biola Anda, hasil yang diharapkan untuk HighCharts adalah sebagai berikut:

1:Data Kategori :

  • Harus berupa larik tanggal.
  • Pastikan Anda menghapus duplikat dan mengurutkannya dalam urutan naik/turun sesuai keinginan Anda, untuk melihat grafik berkelanjutan.
"categories":["2019-02-07", "2019-02-08", "2019-02-09", "2019-02-12", "2019-02-13", "2019-02-14"]

2:Data Seri :

  • Ini akan menjadi array objek, di mana setiap objek berisi dua properti name dan data .
  • Data harus memiliki n tidak ada nilai jika categories your Anda array memiliki n nilai dan masing-masing sesuai dengan indeks yang sama.
  • Karena kami tidak memiliki data untuk setiap tanggal untuk setiap kelas, kami akan menambahkan 0 di sana.

Jadi data akan terlihat seperti

"series":[
      {
         "name":"class 1",
         "data":[45,0,166,78,0,0]
      },
      {
         "name":"class 2",
         "data":[0,64,0,64,627,0]
      },
      {
         "name":"class 3",
         "data":[0,0,0,0,87,352]
      }
   ]

Fiddle Fiddle yang dapat dicapai dengan PHP menggunakan kode di bawah ini:

$arrDates = [];
$arrClass = [];
$arrData  = [];

while ( $row = $query->fetch(PDO:: FETCH_ASSOC)) {
  $arrDates[] = $row['dates'];
  $arrClass[] = $row['class'];
  $arrData[$row['class'] . ':' . $row['dates']] = $row['marks']; // to identify for which date & class this marks belong to, we can directly search for index.
}

$arrDates = array_unique($arrDates);
sort($arrDates);
$arrClass = array_unique($arrClass);

// Create series data
$arrSeriesData = [];
foreach($arrClass as $strClass){
  $tempArr = ['name' =>  $strClass];
  foreach($arrDates as $strDate){
      $tempArr['data'][] = isset($arrData[$strClass . ':' . $strDate]) ? intval($arrData[$strClass . ':' . $strDate]) : 0;
  }

  $arrSeriesData[] = $tempArr;
}


$response = ['categories' => $arrDates, 'series' => $arrSeriesData];

echo json_encode($response);

Output:
{"categories":["2019-02-07","2019-02-08","2019-02-09","2019-02-12","2019-02-13","2019-02-14"],"series":[{"name":"class 1","data":[45,0,166,78,0,0]},{"name":"class 2","data":[0,64,0,64,627,0]},{"name":"class 3","data":[0,0,0,0,87,352]}]}

Perbarui kode javascript Anda untuk mencerminkan hal di atas

$(document).ready(function() {
    $(function() {
        $.getJSON('data.php', function(data) {
            // Create the chart
            Highcharts.chart('container', {
                title: {
                    text: 'class Marks'
                },

                xAxis: {
                    categories: data.categories
                },
                series: data.series,

            });
        });
    });
});



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Data hadir dalam baris ke kolom

  2. Cara mengambil cadangan Database MySQL

  3. MySQL - Menghitung baris dan masalah gabungan kiri

  4. Kecepatan:MySQL vs Output File

  5. Bagaimana cara saya mencari dari bidang serialisasi di database mysql?