php sql데이터 가져오기 도와주세요

php sql데이터 가져오기 도와주세요

QA

php sql데이터 가져오기 도와주세요

본문


<?php 
include_once('../common.php'); 
$g5['title'] = "테스트 차트"; 
include_once('../_head.php'); 
?>
<?php
    $conn = mysqli_connect('localhost','root','12345','myproject'); 
    
    mysqli_query($conn,'set names utf8'); //한글 깨짐 방지 코드 
    $sql = "SELECT TIMES,WEIGHTS FROM DATA WHERE DATES= '2019-04-01' ORDER BY TIMES DESC";
    $result = mysqli_query($conn,$sql);
?>
<!-- 추가할 내용 부분 /Start-->
<div> 
    <p>차트 샘플입니다.</p> 
</div>
    <!-- jQuery -->
    <script src="https://code.jquery.com/jquery.min.js"></script>
    <!-- google charts -->
       <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <h4>사이트 방문자 성별 현황 그래프</h4>
 
    <div id="Line_Controls_Chart">
      <!-- 라인 차트 생성할 영역 -->
          <div id="lineChartArea" style="padding:0px 20px 0px 0px;"></div>
      <!-- 컨트롤바를 생성할 영역 -->
          <div id="controlsArea" style="padding:0px 20px 0px 0px;"></div>
        </div>
 
 
  <script>
 
  var chartDrowFun = {
 
    chartDrow : function(){
        var chartData = '';
 
        //날짜형식 변경하고 싶으시면 이 부분 수정하세요.
        var chartDateformat     = 'yyyy년MM월dd일';
        //라인차트의 라인 수
        var chartLineCount    = 10;
        //컨트롤러 바 차트의 라인 수
        var controlLineCount    = 10;
 
 
        function drawDashboard() {
 
          var data = new google.visualization.DataTable();
          //그래프에 표시할 컬럼 추가
          data.addColumn('datetime' , '시간');
          data.addColumn('number'   , '무게');
          
 
          //그래프에 표시할 데이터
          var dataRow = [];
 
        //  for(var i = 0; i <= 29; i++){ //랜덤 데이터 생성
        //    var total   = Math.floor(Math.random() * 300) + 1;
        //    var man     = Math.floor(Math.random() * total) + 1;
        //    var woman   = total - man;
        //    //여기 db에서 가져오 데이터 이형식에 맞게 넣으면됩니다.
        //    //지금은 램덤으로 뿌리고요
        //    //기존있던 차트는 유료라서 실행도 안해봤고
        //    //이건 구글껀데 무료라고하네요.
        //    
        //    dataRow = [new Date('2017', '09', i , '10'), man, woman , total];
            while($query_data = mysqli_fetch_array($result))
            {
                    $times = $query_data["TIMES"];
                    $weights = $query_data["WEIGHTS"];
                    datarow = [$times,$weights];
                    data.addRow(dataRow);
                
            }
            
          }
 
 
            var chart = new google.visualization.ChartWrapper({
              chartType   : 'LineChart',
              containerId : 'lineChartArea', //라인 차트 생성할 영역
              options     : {
                              isStacked   : 'percent',
                              focusTarget : 'category',
                              height          : 500,
                              width              : '100%',
                              legend          : { position: "top", textStyle: {fontSize: 13}},
                              pointSize        : 5,
                              tooltip          : {textStyle : {fontSize:12}, showColorCode : true,trigger: 'both'},
                              hAxis              : {format: chartDateformat, gridlines:{count:chartLineCount,units: {
                                                                  years : {format: ['yyyy년']},
                                                                  months: {format: ['MM월']},
                                                                  days  : {format: ['dd일']},
                                                                  hours : {format: ['HH시']}}
                                                                },textStyle: {fontSize:12}},
                vAxis              : {minValue: 100,viewWindow:{min:0},gridlines:{count:-1},textStyle:{fontSize:12}},
                animation        : {startup: true,duration: 1000,easing: 'in' },
                annotations    : {pattern: chartDateformat,
                                textStyle: {
                                fontSize: 15,
                                bold: true,
                                italic: true,
                                color: '#871b47',
                                auraColor: '#d799ae',
                                opacity: 0.8,
                                pattern: chartDateformat
                              }
                            }
              }
            });
 
            var control = new google.visualization.ControlWrapper({
              controlType: 'ChartRangeFilter',
              containerId: 'controlsArea',  //control bar를 생성할 영역
              options: {
                  ui:{
                        chartType: 'LineChart',
                        chartOptions: {
                        chartArea: {'width': '60%','height' : 80},
                          hAxis: {'baselineColor': 'none', format: chartDateformat, textStyle: {fontSize:12},
                            gridlines:{count:controlLineCount,units: {
                                  years : {format: ['yyyy년']},
                                  months: {format: ['MM월']},
                                  days  : {format: ['dd일']},
                                  hours : {format: ['HH시']}}
                            }}
                        }
                  },
                    filterColumnIndex: 0
                }
            });
 
            var date_formatter = new google.visualization.DateFormat({ pattern: chartDateformat});
            date_formatter.format(data, 0);
 
            var dashboard = new google.visualization.Dashboard(document.getElementById('Line_Controls_Chart'));
            window.addEventListener('resize', function() { dashboard.draw(data); }, false); //화면 크기에 따라 그래프 크기 변경
            dashboard.bind([control], [chart]);
            dashboard.draw(data);
 
        }
          google.charts.setOnLoadCallback(drawDashboard);
 
      }
    }
 
$(document).ready(function(){
  google.charts.load('current', {'packages':['line','controls']});
  chartDrowFun.chartDrow(); //chartDrow() 실행
});
  </script>
 
 
<?php 
include_once('../_tail.php'); 
?>

 

 

 

 

 

mysql에서 데이터를 select해온것을 구글차트 그래프를 그려넣고 싶은데

php문법을 몰라 질문드립니다.

 

 

$result = mysqli_query($conn,$sql);  <<< 이렇게 가져온값을

 

 

 while($query_data = mysqli_fetch_array($result))
            {
                    $times = $query_data["TIMES"];
                    $weights = $query_data["WEIGHTS"];
                    datarow = [$times,$weights];
                    data.addRow(dataRow);
                
            }

 

이부분에서 넣으면 될꺼같아 이렇게 코딩했는데 그래프를 가져오지 못하네요.

sql커넥션부분은 아무런 문제가 없습니다.

 

어떻게 하면 될까요.

도움 부탁드립니다.

 

이 질문에 댓글 쓰기 :

답변 1

스크립트 내부에 while 문을 부르면 당연히 에러가 납니다.

외부에서 while문을 통하여 변수 지정을 하시고

스크립트 내부에서는 "" 를 통하여 "<?php echo $변수1; ?>" 형태로 불러보시면 될것같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,134 | RSS
QA 내용 검색

회원로그인

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