2017-11-07 15 views
1

XAMPP Webサーバーを使用しています。グラフが正しく表示されない

私はhtdocsにchartexampleというフォルダを作成しました。

今、グラフのjsを使用してデータベースデータを表示したいとします。

私はdata.phpとbargraph.htmlファイルをchartexampleフォルダに作成しました。同様に、chart.ampleフォルダのjsフォルダにapp.jsファイルを作成しました。

しかし、このコードを実行すると、未定義がチャートに表示されます。以下は私のコードです:

data.php

<?php 

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "shgreportingdatabase"; 

// Create connection 
$conn = new mysqli($servername, $username, $password,$dbname); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
echo "Connected successfully"; 



$sql = "SELECT employee.FirstName, count(*) as TotalGroups from groupdetails, employee WHERE groupdetails.EmpId=employee.EmpId group by groupdetails.EmpId"; 

$result = $conn->query($sql); 

if ($result!=null) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     print json_encode($row); 
    } 
} 
$conn->close(); 

はここ

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

      <canvas id="mycanvas"></canvas> 


     <!-- javascript --> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
     <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.min.js"></script> 
     <script type="text/javascript" src="js/app.js"></script> 
    </body> 
</html> 

bargraph.htmlであると私は、問題がクエリである疑いがある

$(document).ready(function(){ 
    $.ajax({ 
     url: "http://localhost/chartexample/data.php", 
     method: "GET", 
     success: function(data) { 
      console.log(data); 
      var emp = []; 
      var groups = []; 

      for(var i in data) { 
       emp.push(data[i].FirstName); 
       groups.push(data[i].FirstName); 
      } 

      var chartdata = { 
       labels: emp, 
       datasets : [ 
        { 
         label: 'SHG Groups', 
         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: groups 
        } 
       ] 
      }; 

      var ctx = $("#mycanvas"); 

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

あなたのajax成功コールバックから、あなたは 'console.log(data);'に必要なデータを取得していますか? –

答えて

0

をapp.js 。

上記では、WHEREを使用して2つのテーブル間のリンクを指定しています。これはJOINの仕事です。すべての行を取得しない場合は、WHEREに具体的な内容を指定する必要もあります。あなたには、いくつかのデータを除外するためにそこにWHEREを使用する必要がある場合

$SQL = "SELECT employee.FirstName, count(*) as 'TotalGroups' FROM groupdetails g JOIN employee e ON g.EmpId = e.EmpId 

は、あなたがテーブルを指定する必要があります。たとえば、WHERE g.id = 5は、groupdetailsテーブルからID 5を返します。

の場合すべての行を戻したい場合は、WHERE句をすべて省略します。

+0

私はあなたが提供したようにSQLを置き換えましたが、それでも動作しません – Questions

関連する問題