如何建立统计图表?

时间:2012-01-29 13:09:39

标签: php javascript graph

我想构建一个统计图表,显示每天有多少用户注册,也可能显示其他一些数据。我有一个MySql表,我在其中存储他们注册的日期和用户名等。

我如何构建这样的图表?我需要什么呢?

3 个答案:

答案 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来说是非常简单的。