2017-05-19 39 views
1

phpを使用してoracleのデータをグラフにしたいと考えています。 oracleをデータベースとして使用するサンプルが見つかりませんでした。主にmysqlからのものです。 データは、私はこのコードを作ったが、それは働いていないこのoracleからPHPを使用してグラフを作成する方法

enter image description here

のようなものです。 このenter image description here

data.php

<?php 
    header('Content-Type: application/json'); 
    $conn = oci_connect('***', '***', '127.0.0.1/orcl'); 

    $graph=sprintf("SELECT count(pm.packagename) as quantity,pm.packagename 
     FROM packagemenu pm 
     INNER JOIN orderdetail od ON od.packageid=pm.packageid 
     inner join orders o on o.orderid = od.orderid 
     group by pm.packagename"); 
    $parse=oci_parse($conn,$graph); 
    oci_execute($parse); 
    $data=array(); 
    while($row1 = oci_fetch_array($parse)){ 
    $data[]=$row1; 

    } 
    print json_encode($data); 

    ?> 

bargraph.html

<!DOCTYPE html> 
<html> 
<head> 
    <title>ChartJS - BarGraph</title> 
    <style type="text/css"> 
     #chart-container { 
      width: 640px; 
      height: auto; 
     } 
    </style> 
</head> 
<body> 
    <div id="chart-container"> 
     <canvas id="mycanvas"></canvas> 
    </div> 

    <!-- javascript --> 
    <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script> 
    <script type="text/javascript" src="js/Chart.min.js"></script> 
    <script type="text/javascript" src="js/app.js"></script> 
</body> 

apps.js

01のようにそのショー
$(document).ready(function(){ 
    $.ajax({ 
    url: "http://localhost/psm/admin/data.php", 
    method: "GET", 
    success: function(data) { 
     console.log(data); 
     var packagename = []; 
     var quantity = []; 

     for(var i in data) { 
      packagename.push("Packagename " + data[i].packagename); 
      quantity.push(data[i].quantity); 
     } 

     var chartdata = { 
      labels: packagename, 
      datasets : [ 
       { 
        label: 'Package Name', 
        backgroundColor: 'rgba(200, 200, 200, 0.75)', 
        borderColor: 'rgba(200, 200, 200, 0.75)', 
        hoverBackgroundColor: 'rgba(200, 200, 200, 1)', 
        hoverBorderColor: 'rgba(200, 200, 200, 1)', 
        data: quantity 
       } 
      ] 
     }; 

     var ctx = $("#mycanvas"); 

     var barGraph = new Chart(ctx, { 
      type: 'bar', 
      data: chartdata 
     }); 
     }, 
     error: function(data) { 
     console.log(data); 
     } 
    }); 
}); 
+0

基本的なトラブルシューティングが必要です。あなたの '$ data'変数の中身は何ですか? CLIから 'curl http:// localhost/psm/admin/data.php'を実行すると、データが表示されますか? – varlogtim

+0

@varlogtimデータ表示[{"0": "8"、 "QUANTITY": "8"、 "1": "セットA"、 "パックセット名": "セットA"}、{"0": "5 "、" QUANTITY ":" 5 "、" 1 ":" Set B "、" PACKAGENAME ":" Set B "}] URL:http://localhost/psm/admin/data.php – SySyBy

答えて

2

データがあるので、この:

[{"0":"8","QUANTITY":"8","1":"Set A","PACKAGENAME":"Set A"},{"0":"5","QUANTITY":"5","1":"Set B","PACKAGENAME":"Set B"}] 

あなたがpackagenamequantity空の配列VAR/undifinedを行った場合の感度の問題を、持っています。

、変更する必要が

for(var i in data) { 
     packagename.push("Packagename " + data[i].packagename); 
     quantity.push(data[i].quantity); 
    } 

を...に...

for(var i in data) { 
     packagename.push("Packagename " + data[i].PACKAGENAME); 
     quantity.push(data[i].QUANTITY); 
    } 

私はChart.jsに精通していますが、未定義グラフ化しようとしないように、これを固定していないです変数は最初のステップです。

+0

うわー! tqそんなに。しかしSet Aのみで表示されます。しかし、そのok .iはそのショーSetBまであなたを解決しようとします。 – SySyBy

関連する問題