구글차트 그래프 mysql DB 연동에 대해 문의드립니다.

구글차트 그래프 mysql DB 연동에 대해 문의드립니다.

QA

구글차트 그래프 mysql DB 연동에 대해 문의드립니다.

본문


<?php
  $con = mysqli_connect('localhost', 'x', 'x');
  mysqli_select_db($con, 'x');
  $s = "select user_id, pay_tt from lms_pay where pay_tt >0 group by user_id";
  $result = mysqli_query($con, $s);
  $data_array = array();
  while($row = mysqli_fetch_assoc($result)){
      $data_array[] = ($row);
  }
    $chart= json_encode($data_array);
    echo $chart;
  ?>
<script type="text/javascript">
      google.charts.load('current', {'packages': ['corechart']});
      google.charts.setOnLoadCallback(drawChart);
      function drawChart() {
      var chart_array= '<?php echo $chart; ?>';
      var header = ['user_id','pay_tt'];
       var row = "";            
       var rows = new Array();
    jQuery.each(chart_array, function( i, d ) {
    //    row = [parseInt(d.user_id),parseInt(d.pay_tt)];
       row = [parseInt(d.user_id),Number(d.pay_tt)];
    //    row = [d.user_id,Number(d.pay_tt)];
       rows.push(row);
      });  
     var jsonData = [header].concat(rows);
    var data = google.visualization.arrayToDataTable(jsonData);
          var options = {
              'title': '성적추이 현황',
            //   'seriesType': 'bars',
              'width': 800,
              'height': 600
          };
          var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
          chart.draw(data, options);
      }
</script>
<!DOCTYPE html>
<html>
<head>
    <title>성적변화 그래프</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
</head>
<body>
  <div id="chart_div" style="width: 650px; height: 500px;"></div>
</body>
</body>
</html>

 

참조로 기재된 내용에서 DB 접속정보는 보안상 임의로 지정하였습니다.

 

json 데이터는 정상적으로 쿼리가 동작을 하여 아래와 같이 데이터가 배열되고 있습니다.

 

[{"user_id":"a1111a","pay_tt":"3000000"},{"user_id":"aa1234","pay_tt":"500000"},

.................]

 

자바스크립트에서 row 구분시에 row = [parseInt(d.user_id),parseInt(d.pay_tt)]; 이 부분 때문인것 같은데

그래프 테이블은 나타나게 되지만 아래의 캡쳐화면과 같이 데이터들이 표현되지 않고 있습니다.

990507233_1613727161.3093.png

그누보드5에서 구글차트를 mysql 연동하여 json array로 처리하여 보신 분들의 조언을 구하고자

이렇게 문의드립니다.

 

 

 

이 질문에 댓글 쓰기 :

답변 1

json_encode 된거기 때문에 문자열이어선 안될거같고요

chart_array= '<?php echo $chart; ?>';

chart_array= <?php echo $chart; ?>;

대신 데이터가 없을땐 

chart_array = [];

이런형식이 되어야해서

php에서 해주시고

script를

#chart_div 아래로요

 


<div id="chart_div" style="width: 650px; height: 500px;"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
      google.charts.load('current', {'packages': ['corechart']});
      google.charts.setOnLoadCallback(drawChart);
      function drawChart() {
      var chart_array= [{"user_id":0,"pay_tt":10},{"user_id":1,"pay_tt":10},{"user_id":2,"pay_tt":10},{"user_id":3,"pay_tt":5},{"user_id":4,"pay_tt":10},{"user_id":5,"pay_tt":6},{"user_id":6,"pay_tt":5},{"user_id":7,"pay_tt":6},{"user_id":8,"pay_tt":9},{"user_id":9,"pay_tt":10}];
      var header = ['user_id','pay_tt'];
       var row = "";            
       var rows = new Array();
    jQuery.each(chart_array, function( i, d ) {
    //    row = [parseInt(d.user_id),parseInt(d.pay_tt)];
       row = [parseInt(d.user_id),Number(d.pay_tt)];
    //    row = [d.user_id,Number(d.pay_tt)];
       rows.push(row);
      });  
     var jsonData = [header].concat(rows);
    var data = google.visualization.arrayToDataTable(jsonData);
          var options = {
              'title': '성적추이 현황',
            //   'seriesType': 'bars',
              'width': 800,
              'height': 600
          };
          var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
          chart.draw(data, options);
      }
</script>
답변을 작성하시기 전에 로그인 해주세요.
전체 1,543
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT