1

我想在我的网站上制作一个条形图,显示一周中的哪几天和一天中的哪些时间活动/登录次数最多。

所以我想知道是否有人可以给我一些关于他们如何做到这一点的提示?我应该如何组织数据库表,要收集哪些数据,以及如何使用 PHP 将记录为条形图的数据呈现出来。

4

3 回答 3

1

使用服务器日志进行可视化可能更容易。Processing ( http://www.processing.org/ ) 擅长这样的事情,或者尝试http://processingjs.org/以获得非 Java 版本。

但是,为了解决您的问题,如前所述,存储每次访问的数据时间(如果您是在进行唯一访问,也可能存储 IP),然后编写一个脚本来提取记录并为每个小时进行总计。您可以使用彩色 div,将高度设置为命中的数量(或一小部分)。实际上,这基本上是一个命中计数器,不是吗。

是的,我的建议是检查处理,但它很容易上手并产生漂亮的结果。

于 2010-11-23T17:08:21.460 回答
0

可能最好的方法是为每次访问或登录存储一个日期时间戳。然后,您可以使用巧妙的 SQL 查询对信息进行任意分组(星期几、一天中的时间或其他任何内容)。

因此,数据库表可能只需要一个主键和访问时间戳,尽管您也可以肯定地存储有关用户或操作的信息。

对于演示,请尝试使用 Google Charts (http://code.google.com/apis/chart/) 或基于 javascript 的图表库(有几个,我对 Highcharts 有很好的经验http://www .highcharts.com/

ps:既然您将这篇文章标记为 MySQL,我假设这是您选择的数据库。这是您可以使用的表创建语句。

CREATE TABLE `visits` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `created` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
于 2010-11-23T16:57:10.177 回答
0

如果你必须自己做而不是使用预先存在的包。从小处着手。只需创建一个表来记录每个请求、谁发出请求、时间、引用者以及您想要的任何信息。

记录数据后,如果您仍然不想使用 Google Charts 之类的东西,可以尝试使用 css 和 html 制作自己的简单 PHP 图表。

条形图可以很简单,但需要一些数学才能正确。最简单的方法是将它们翻转到一边。您通常将它们视为建筑物,但在这种情况下您希望将它们视为蠕虫状的管子。然后管的长度可以代表点击次数、浏览量、访问量等。

我将为整个图表定义一个固定宽度,并更改条形的宽度以表示最大值的百分比。因此,如果最大值为 1000,而此条为 500,则您可以将条设置为图表宽度的 50%。

我希望这能为您指明正确的方向。做这样的事情对于学习新概念很有帮助。

于 2010-11-23T17:02:46.177 回答