<?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; ?>" 형태로 불러보시면 될것같습니다.
답변을 작성하려면 로그인이 필요합니다.