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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
구글차트 그래프 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>
답변을 작성하시기 전에 로그인 해주세요.
전체 58
QA 내용 검색

회원로그인

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