我正在用 php 和 mysql 开发一个 web 应用程序。我的网站上有视频,用户可以上传他们的视频。
现在,我想通过为视频视图创建简单的分析图表来增加交互性。
图表将包含每个月的视图。问题是我不知道从哪里开始。
谁能告诉我将每个月的视频浏览量存储在数据库中然后以条形图的形式查看的逻辑?(就像谷歌分析说每月或每周的访问者数量)
谷歌图表将非常适合您想要做的事情。我自己使用它们。只需使用 PHP json_encode 输出统计信息。
然后使用 cron 作业来获取当前的 veiws 数量或其他统计信息,并将它们存储在数据类型文本行中。
有一个包含 video_id、count、month 和 year 列的表。video_id、月份和年份组合为唯一键。
每当观看视频时(按照要求的编程术语)尝试插入 video_id、1、月份和年份。检查您是否收到唯一密钥违规。如果你这样做了,而不是插入你用 count + 1 更新计数。
要获取月份和年份,您可以使用 MYSQL 日期函数。video_id 将从前端发送,并且可以轻松增加计数。
获得此表后,您始终可以获取该月和该年的特定视频的总计数。
何时计算观看次数?
您必须定义何时计算视图。可能最好的方法是分析某个用户访问视频的时间间隔、播放时间以及可能的一些标识符,例如他的用户代理,以便能够区分 IP 地址后面的多个用户(如果用户不是t 登录)。
插入视图
一旦你决定是否计算一个视图,你就必须将它插入到数据库中。这取决于您使用的数据库和表结构。看看PHP MySQL教程,或者如果你认为你可以做更多,看看PDO,它可以更安全和有用。
为了能够分析每月统计数据,您必须在每个视图中插入时间戳。最后,您只需选择指定日期的值(在您的情况下为上个月)。
这要求您至少知道如何设置在其中插入数据的数据库表。
显示视图
由于数据库中的每个视图都有一个条目,因此最好的办法是创建一个自动作业,它使用视图总数更新另一个表。这将减少负载,并防止您的用户立即看到查看次数(如果有人试图增加查看次数,这可能会有所帮助——>他无法立即查看他是否成功)。
创建图表
首先,您必须选择值。假设您的用户能够指定他想要查看视图的日期范围,您必须采用该范围,用它查询您的数据库,然后继续处理结果。如何选择它取决于您希望如何显示它。如果您想显示该月的每一天,则必须按天对视图进行分组。
实际显示数据的方式对您开放。它可以是非常简单的东西,带有表格的东西,或者您可以使用JpGraph之类的东西来创建图形作为图像。我个人将 JpGraph 用于类似的东西。需要一些努力,但值得付出努力。
我希望这能让您以某种方式了解如何解决您的问题。如果您有更具体的问题,请发布一些代码和您正在尝试做的事情,因为该解决方案不存在。