ChartJs를 사용하여 막 대형 차트와 원형 차트를 만들고 싶습니다. 나는 데이터를 얻기 위해 PHP와 MySQL을 사용하고있다. 내가 만들고자하는 가로 막 대형 차트는 남성 또는 여성 학생의 통계와 학생들의 합계를 보여주는 차트입니다. 저는 여기에 결과를 표시 할 방법의 예입니다 : 그것은 정확히처럼하지 않을 수 있습니다php mysql 데이터를 ChartJs로 올바르게 전달하는 방법
,하지만 나는 아이디어를 제공 느낀다. 필자는 ChartJ의 초보자이며 morris.js가 완벽하게 지원되지 않기 때문에 그냥 시도하고 있기 때문에 이해가 안되는 코드에 문제가 있습니다.
HTML을
을 스크립트<div class="box box-success">
<div class="box box-header with-border">
<h3 class="box-title">Student Chart</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
</button>
<button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
</div>
<div class="box-body">
<canvas id="mycanvas" style="height:230px;"></canvas>
</div>
</div>
:
$.ajax({
url: 'data.php',
type: 'GET',
success:function(data){
console.log(data);
var male = [];
var female = [];
for(var count in data){
male.push(data[count].male);
female.push(data[count].female);
}
var chartdata = {
labels: male,
datasets: [
{
label: 'Student Gender',
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:female
}
]
};
var ctx = $('#mycanvas');
var barGraph = new Chart(ctx, {
type:'bar',
data: chartdata
});
},
error:function(data){
console.log(data);
}
});
data.php 여기
$query = "SELECT
SUM(CASE WHEN gender = 'Male' THEN 1 ELSE 0 END) as Male,
SUM(CASE WHEN gender = 'Female' THEN 1 ELSE 0 END) as Female
FROM students";
$output = array();
if ($result = mysqli_query($connection, $query)) {
# code...
foreach ($result as $row) {
# code...
$output[] = $row;
}
} else {
die("There was a problem". mysqli_error($connection));
}
echo json_encode($output);
내가 콘솔에서지고있어 결과가 여기 내 코드는 모습입니다 :
[{ "Male": "5", "Female": "2"}]
나는 어떻게하면 더 좋게 만들 수 있는지에 대한 제안을 감사하고 원형 차트에도 동일하게 적용합니다.
내가 무슨 짓을했는지에 따라이 내 차트를 표시하는 방법입니다 :
주이 사진에 주파수를 무시하십시오.
내 코드를 사용하여 사용자의 요구 사항을 충족 시켰으며 이것이 콘솔에서 얻은 결과입니다. [{ "gender": "Female", "total": "2"}, { "gender": "Male ","total ":"5 "}]) 차트는 여전히 동일하게 표시됩니다. –
"total"을 두 번째 필드로 사용하여 코드를 업데이트했습니다 .. 지금 확인하십시오 .. –