我想构建一个统计图表,显示每天有多少用户注册,也可能显示其他一些数据。我有一个MySql表,我在其中存储他们注册的日期和用户名等。
我如何构建这样的图表?我需要什么呢?
答案 0 :(得分:3)
有很多方法可以构建图表。我可以想到一些方法,根据你的知识使用你认为最好的方法。
在每种情况下,您都需要查询数据库。所以MySQL的基础知识。
然后,您可以通过循环结果集并通过简单的HTML div或使用GD库创建图形来在服务器端创建图形。
或者您可以将结果集作为JSON对象发送,并使用简单的HTML div或canvas标签在客户端创建图形。
服务器端图更简单,但无法在不刷新页面的情况下进行动画或更新。客户端图表需要其他知识(JSON,安全性等)
答案 1 :(得分:3)
您并不总是需要使用真实图形来做事。
<?php
// mysql connection setup
// ...
// Get the dates in a single SELECT. 2592000 seconds = 30 days
$result = mysql_query("SELECT regdate FROM users WHERE regdate > NOW()-2592000");
foreach ($row = mysql_fetch_row($result)) {
$output[date("Y-m-d", strtotime($row['regdate']))]++;
}
$fmt = ' <tr><td>%s</td><td width="%s" background="#FF0000"> </td></tr>' . "\n";
?>
<table border="0" cellspacing="0" cellpadding="0"><tr height="100">
<?php
for ($date = time()-2592000; $date < time(); date += 86400) {
$thisdate = date("Y-m-d", $date);
printf($fmt, $thisdate, $output[$thisdate]);
}
?>
</tr></table>
?>
显然未经测试。可能不完整。因人而异。盐味。
答案 2 :(得分:0)
如果您只需要条形图,那么使用计算高度的div
可能会更好,所有这些都固定在底线上。这对于编写和使用更少的CPU,RAM和bandwidht来说是非常简单的。