mysqlからchart.jsにデータを取得する方法

ヘンリック

chart.jsで円グラフを作成したいのですが、グラフが表示されません。この問題を解決するために1日を費やしましたが、良い結果は得られませんでした。誰かが私を助けてくれることを願っています。

私のデータベースにはさまざまな会社があります。各会社の総売上高を計算して円グラフで表示する必要があります。

問題は$ results_sum = "SELECT SUM(total_of_gp_fee)AS Total FROM gp WHERE cshortcut= $ subjectData( 'cshortcut')";だと思います。、さまざまな会社の販売実績が多く、それが正しいコードかどうかはわかりません。

<?php
include_once("connection.php");
$results_sum = "SELECT cshortcut,SUM(total_of_gp_fee) AS Total FROM gp GROUP BY cshortcut";
$result_sum = mysqli_query($conn, $results_sum) or die("error to fetch data");
if ($result_sum->num_rows > 0) {
// output data of each row
$labels = $data = '';
while($row = $result_sum->fetch_assoc()) {

    //get the company name separated by comma for chart labels
    $labels.= '"' .$row["cshortcut"]. '",';

    //get the total separated by comma for chart data
    $data.= $row["Total"].',';
}
}?>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>test</title>
<script src="chart/Chart.bundle.js"></script>

</head>
<body>
<div class="container">
    <canvas id="myChart" width="300" height="100"></canvas>
</div>

スクリプト部分

<script>
    var ctx = document.getElementById("myChart");
    var myChart = new Chart(ctx, {
        type: 'pie',
        data: {
            labels: [<?php echo trim($labels);?>],
        datasets: [{
                label: '# of Votes',
                data: [<?php echo trim($data);?>],
                    backgroundColor: [
                        'rgba(255, 99, 132, 0.2)',
                        'rgba(54, 162, 235, 0.2)',
                        'rgba(255, 206, 86, 0.2)',
                        'rgba(75, 192, 192, 0.2)',
                        'rgba(153, 102, 255, 0.2)',
                        'rgba(255, 159, 64, 0.2)',
                        'rgba(255, 99, 132, 0.2)',
                        'rgba(54, 162, 235, 0.2)',
                        'rgba(255, 206, 86, 0.2)',
                        'rgba(75, 192, 192, 0.2)',
                        'rgba(153, 102, 255, 0.2)',
                        'rgba(255, 159, 64, 0.2)'
                    ],
                    borderColor: [
                        'rgba(255,99,132,1)',
                        'rgba(54, 162, 235, 1)',
                        'rgba(255, 206, 86, 1)',
                        'rgba(75, 192, 192, 1)',
                        'rgba(153, 102, 255, 1)',
                        'rgba(255, 159, 64, 1)',
                        'rgba(255, 99, 132, 0.2)',
                        'rgba(54, 162, 235, 0.2)',
                        'rgba(255, 206, 86, 0.2)',
                        'rgba(75, 192, 192, 0.2)',
                        'rgba(153, 102, 255, 0.2)',
                        'rgba(255, 159, 64, 0.2)'
                    ],
                    borderWidth: 1
                }]
        },
        options: {
        scales: {
            yAxes: [{
                    ticks: {
                        beginAtZero: true
                    }
                }]
        },

        //Add the tooltips
        tooltips: {
                callbacks: {
                    label: function(tooltipItem) {
                        return "€ " + Number(tooltipItem.yLabel);
                    }
                }
        },
    }
        },
     );
</script>
シヴェンドラシン

1-会社名とtotal_of_gp_feeグループの合計を会社ごとに取得します。

include_once("connection.php");

//get the company name and total_of_gp_fee of that company.
$results_sum = "SELECT cshortcut,SUM(total_of_gp_fee) AS Total FROM gp GROUP BY cshortcut";
$result_sum = mysqli_query($conn, $results_sum) or die("error to fetch data");
if ($result_sum->num_rows > 0) {
    // output data of each row
    $labels = $data = '';
    while($row = $result_sum->fetch_assoc()) {

        //get the company name separated by comma for chart labels
        $labels.= '"' .$row["cshortcut"]. '",';

        //get the total separated by comma for chart data
        $data.= $row["Total"].',';
    }
}

2-チャートのラベルとデータの値を更新します。

labels: [<?php echo trim($labels);?>],
            datasets: [{
                    label: '# of Votes',
                    data: [<?php echo trim($data);?>],

3-棒グラフのツールチップを追加します。

options: {
            scales: {
                yAxes: [{
                        ticks: {
                            beginAtZero: true
                        }
                    }]
            },

            //Add the tooltips
            tooltips: {
                    callbacks: {
                        label: function(tooltipItem) {
                            return "€" + Number(tooltipItem.yLabel);
                        }
                    }
            },
        }

4-円グラフのツールチップを追加します。

tooltips: {
                callbacks: {
                    label: function(tooltipItem, data) {
                        var allData = data.datasets[tooltipItem.datasetIndex].data;
                        var tooltipData = allData[tooltipItem.index];
                        var total = 0;
                        for (var i in allData) {
                            total += allData[i];
                        }
                        var tooltipPercentage = Math.round((tooltipData / total) * 100);
                        return "€" + ': ' + tooltipData + ' (' + tooltipPercentage + '%)';
                    }
                }
            },

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

node.jsでmysqlからデータを取得する方法

分類Dev

node.jsからAjaxにデータを取得する方法は?

分類Dev

Vue JSデータから別のデータに値を取得する方法は?

分類Dev

Setデータ型をmysqlからjavaに取得する方法

分類Dev

Setデータ型をmysqlからjavaに取得する方法

分類Dev

Js fetch()からサーバーにデータを取得する方法は?

分類Dev

サーバーからJSONデータを取得し、chart.jsを使用してグラフを作成する方法

分類Dev

JS onclickイベントからJavaにデータを保存/取得する方法は?

分類Dev

ノードjsの「then」からデータを取得する方法は?

分類Dev

pdf.jsから生データを取得する方法

分類Dev

index.jsのreduxからデータを取得する方法

分類Dev

APIからデータを取得した後にChart.jsを作成します

分類Dev

ajaxを使用してmysqlからデータを取得する方法

分類Dev

行からタプルにデータを取得する方法

分類Dev

mysqlからphpに大きなデータを取得する方法は?

分類Dev

jsonを使用してMySQLデータからAndroidに取得する方法

分類Dev

NodeJs RESTAPIでmysqlから特定のデータを取得する方法

分類Dev

jspでmysqlからデータを取得する方法

分類Dev

MySQLからHTMLテーブルにデータを取得する

分類Dev

今年だけmysqlデータベースからデータを取得する方法

分類Dev

json_urlからデータを取得し、mysqlデータベースに挿入する方法

分類Dev

MySQLデータベースからデータを取得してxmlファイルに保存する方法

分類Dev

配列に基づいてmysqlデータベースからデータを取得する方法

分類Dev

phpからjqueryにデータを取得する方法

分類Dev

Rからパンダにデータを取得する方法

分類Dev

DatePickerDialogからAlertDialogにデータを取得する方法

分類Dev

MVCViewModelからajaxpostに入力データを取得する方法

分類Dev

MVCViewModelからajaxpostに入力データを取得する方法

分類Dev

axiosからdivにデータを取得する方法

Related 関連記事

  1. 1

    node.jsでmysqlからデータを取得する方法

  2. 2

    node.jsからAjaxにデータを取得する方法は?

  3. 3

    Vue JSデータから別のデータに値を取得する方法は?

  4. 4

    Setデータ型をmysqlからjavaに取得する方法

  5. 5

    Setデータ型をmysqlからjavaに取得する方法

  6. 6

    Js fetch()からサーバーにデータを取得する方法は?

  7. 7

    サーバーからJSONデータを取得し、chart.jsを使用してグラフを作成する方法

  8. 8

    JS onclickイベントからJavaにデータを保存/取得する方法は?

  9. 9

    ノードjsの「then」からデータを取得する方法は?

  10. 10

    pdf.jsから生データを取得する方法

  11. 11

    index.jsのreduxからデータを取得する方法

  12. 12

    APIからデータを取得した後にChart.jsを作成します

  13. 13

    ajaxを使用してmysqlからデータを取得する方法

  14. 14

    行からタプルにデータを取得する方法

  15. 15

    mysqlからphpに大きなデータを取得する方法は?

  16. 16

    jsonを使用してMySQLデータからAndroidに取得する方法

  17. 17

    NodeJs RESTAPIでmysqlから特定のデータを取得する方法

  18. 18

    jspでmysqlからデータを取得する方法

  19. 19

    MySQLからHTMLテーブルにデータを取得する

  20. 20

    今年だけmysqlデータベースからデータを取得する方法

  21. 21

    json_urlからデータを取得し、mysqlデータベースに挿入する方法

  22. 22

    MySQLデータベースからデータを取得してxmlファイルに保存する方法

  23. 23

    配列に基づいてmysqlデータベースからデータを取得する方法

  24. 24

    phpからjqueryにデータを取得する方法

  25. 25

    Rからパンダにデータを取得する方法

  26. 26

    DatePickerDialogからAlertDialogにデータを取得する方法

  27. 27

    MVCViewModelからajaxpostに入力データを取得する方法

  28. 28

    MVCViewModelからajaxpostに入力データを取得する方法

  29. 29

    axiosからdivにデータを取得する方法

ホットタグ

アーカイブ