Php 如何构建统计图?

Php 如何构建统计图?,php,javascript,graph,Php,Javascript,Graph,我想建立一个统计图,显示每天有多少用户注册,也许还有其他一些数据。我有一个MySql表,其中存储了他们注册的日期、用户名等 我如何构建这样一个图表?我需要什么呢?如果您只需要条形图,那么最好使用计算高度的divs,所有这些都固定在一条底线上。这是一个非常简单的编写过程,并且使用的CPU、RAM和带宽更少。构建图形的方法很多。我可以想出一些方法,根据你的知识,使用你认为最好的方法 在任何情况下,都需要查询数据库。因此,MySQL的基础知识 然后,您可以在服务器端通过循环结果集创建图形,并通过简单的

我想建立一个统计图,显示每天有多少用户注册,也许还有其他一些数据。我有一个MySql表,其中存储了他们注册的日期、用户名等


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

如果您只需要条形图,那么最好使用计算高度的
div
s,所有这些都固定在一条底线上。这是一个非常简单的编写过程,并且使用的CPU、RAM和带宽更少。

构建图形的方法很多。我可以想出一些方法,根据你的知识,使用你认为最好的方法

在任何情况下,都需要查询数据库。因此,MySQL的基础知识

然后,您可以在服务器端通过循环结果集创建图形,并通过简单的HTML div创建图形,或者使用GD库

或者,您可以将结果集作为JSON对象发送,并使用简单的HTML divs或canvas标记在客户端创建图形


服务器端图要简单得多,但如果没有页面刷新,就无法设置动画或更新。客户端图形需要额外的知识(JSON、安全性等)

您并不总是需要使用真实的图形

<?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>

?>

?>

显然,没有经过测试。可能不完整。YMMV。盐的味道。

您需要一个可以生成图像的php脚本。要么自己建造一个,要么从已经存在的众多中进行选择。一个简短的谷歌“php图形”就足够了。查查还是你知道对不对?你可以提取相关的数据库数据,然后在R中绘制它…哦,我试着用谷歌搜索它,但没有PHP,我不确定我应该使用PHP或JS,但逻辑上我需要PHP从数据库中读取:)对不起,我的大脑放屁。R是一种统计语言,具有良好的图形生成功能,但实际上我会使用您的脚本语言。看起来是个不错的起点。我想我更喜欢服务器端脚本,但为了安全起见,这些图位于登录页面后面,因此如果未登录,您将无法看到任何数据。创建客户端图时,您需要通过HTTP requerst(AJAX)从数据库中提取结果,并且可能需要在该请求中使用一些POST和GET数据。您需要注意SQL注入。这听起来是个好主意。因为我已经下载了一些其他人在这里声明的lib,语法也被弃用了。而且我使用的是mysqli,我没有使用
mysql\u fetch\u row($result)
,而是使用
$stmt->fetch()
,以此类推。我该怎么做呢?我的意思是,你的代码与mysqli进行了转换。mysqli可以用面向对象或过程的方式来完成,而你最初的问题并没有指定mysqli。如果您对如何使用mysqli有疑问,您可能需要单独提问。对于这个问题,您似乎已经有了多个答案。