我想学习考试成绩并将其作为学生主管的图表。 所以我将获取数据库信息(这是学生的结果,并以图形方式向主管表示,以注意学生的进度)
我一直在寻找一种通过php编码或js来表示的方法,但我不能。 我发现谷歌API以非常好的方式绘制图表,但它只接受JSON表...
谢谢
答案 0 :(得分:1)
只需使用phpmyadmin中的导出功能(here即可找到支持的格式)。选择页面顶部(您要导出的表格)中的EXPORT按钮,然后将格式从SQL更改为JSON。
如果要自动导出数据(不要标记phpmyadmin),您应该从数据库中删除它们,然后以json格式(json_encode())对它们进行编码。然后将它们带到Google API并检索图表。
答案 1 :(得分:1)
如果您正在使用PHP后端,则可以查询数据库以获取结果集,并将该结果集放入Google Visualization API可以理解的格式,然后根据它绘制图表。每次需要绘制图表时都无需导出数据:
<?php
$username = 'mysqlusername';
$password = 'password';
$databasename = 'school';
try {
$db = new PDO("mysql:dbname=$databasename", $username, $password);
}
catch (PDOException $e) {
die ($e->getMessage());
}
$query = $db-> prepare('SELECT student, grade FROM myClass WHERE year = :year AND semester = :semester');
// 'year' and 'semester' here get substituted into the query for ':year' and ':semester' respectively
// this is a secure way of passing in parameters to the query so that a malicious user cannot use SQL injection to penetrate your security
$query->execute(array('year' => 2013, 'semester' => 1));
$results = $query->fetchAll(PDO::FETCH_ASSOC);
$data = array(
// create whatever columns are necessary for your charts here
'cols' => array(
array('type' => 'string', 'label' => 'Student Name'),
array('type' => 'number', 'label' => 'Grade')
)
'rows' => array()
);
foreach ($results as $row) {
// 'student' and 'grade' here refer to the column names in the SQL query
$data['rows'][] = array('c' => array(
array('v' => $row['student']),
array('v' => $row['grade'])
});
}
?>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
function drawChart() {
var data = new google.visualization.DataTable(<?php echo json_encode($data, JSON_NUMERIC_CHECK); ?>);
var chart = new google.visualization.ColumnChart(document.querySelector('#chart_div'));
chart.draw(data, {
height: 400,
width: 600
});
}
google.load('visualization', '1', {packages:['corechart'], callback: drawChart});
</script>
</head>
<body>
<div id="chart_div"></div>
</body>
</html>
答案 2 :(得分:1)
phpMyAdmin(版本3.4.0)可以生成简单的图表,请参阅https://docs.phpmyadmin.net/en/latest/charts.html。
答案 3 :(得分:0)
如果phpMyAdmin图表功能不够先进,并且您不需要网络界面,您还可以使用Excel PowerPivot连接到您的MySQL(或任何其他)数据库。
在这里建立链接有一个非常好的HOWTO:
http://www.joyofdata.de/blog/how-to-set-up-powerpivot-and-make-it-talk-to-mysql/