Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 设置数据库以跟踪哪些用户单击了哪些链接?_Php_Mysql_Html_Sql - Fatal编程技术网

Php 设置数据库以跟踪哪些用户单击了哪些链接?

Php 设置数据库以跟踪哪些用户单击了哪些链接?,php,mysql,html,sql,Php,Mysql,Html,Sql,我会试着详细说明我的问题 我最近在我的大学里得到了一个初级兼职开发人员的职位,努力提高我的开发技能。虽然我在过去使用过MySQL,但它只是在一门课程中简要介绍过,因为我主要是一个前端人员(HTML/CSS/JS) 不管怎样,雇用我的系里有一个专门为新来的学生设计的网站,让他们适应大学生活。它有教程和视频供他们观看,等等。为了访问该网站,他们必须登录到他们的大学帐户(使用LDAP)。帐户名的格式为abc1234 现在,我的问题是我需要为工作人员创造一种方法来跟踪大一新生观看了哪些教程/视频。他们希

我会试着详细说明我的问题

我最近在我的大学里得到了一个初级兼职开发人员的职位,努力提高我的开发技能。虽然我在过去使用过MySQL,但它只是在一门课程中简要介绍过,因为我主要是一个前端人员(HTML/CSS/JS)

不管怎样,雇用我的系里有一个专门为新来的学生设计的网站,让他们适应大学生活。它有教程和视频供他们观看,等等。为了访问该网站,他们必须登录到他们的大学帐户(使用LDAP)。帐户名的格式为abc1234

现在,我的问题是我需要为工作人员创造一种方法来跟踪大一新生观看了哪些教程/视频。他们希望我使用数据库来完成这项工作。可能会有数千名学生,他们希望能够准确地看到哪些学生点击了/没有点击每个链接/观看了每个视频

我应该如何为此设置数据库?他们将要跟踪多个链接/教程/视频。如果有一种跟踪用户观看视频到最后的方式,则可获得额外积分,但这不是必需的

我相信我需要使用PHP来处理浏览器和数据库之间的交换,对吗


感谢您的帮助或提示。:)

例如,您需要一个表“users:id、name等”和一个表“clicks:user\u id、url”

要跟踪链接单击,您可以执行以下操作:

<a hreF="log_click.php?url=<?php echo urlencode("some_url?some=param&etc=anything"); ?>">
<a href="getResource.php?res=video1.mpg&type=video">Video 1</a>


有趣的项目。您应该从当前accesed页面中提取用户,并将每个用户的访问页面日志(存储在数据库中)。

您可以简单地创建一个PHP脚本,为他们检索请求的链接,同时为MySQL添加一个值

如果我要这样做,我可能会这样做:

<a hreF="log_click.php?url=<?php echo urlencode("some_url?some=param&etc=anything"); ?>">
<a href="getResource.php?res=video1.mpg&type=video">Video 1</a>


在PHP中,我只需从会话中获取资源、类型和用户ID,将它们放入数据库,然后检索它们正在寻找的资源。要跟踪他们是否全程观看了视频,您可以使用javascript观看播放器即将结束的事件,然后只使用没有擦洗条的皮肤。

您了解主键和外键之间的关系吗?如果不是的话,你需要从一个关系数据库教程开始——但简而言之,你将得到一个充满学生的表格和一个充满视频的表格。然后,您将拥有第三个表,该表创建学生和视频之间的关系,通常称为映射表,通过将一个表的主键链接到另一个表的主键,如果已完成,则可能还有一个日期字段和一个位字段。这远远超出了“前端设计器”的范围。我们有一个3人的团队,分配了大约4-6周的时间来获得一个完整的跟踪系统,如wokring(我们跟踪电子邮件以及在什么时间从哪个电子邮件中点击了哪些链接,甚至之后点击了哪些链接),您需要从一个通用处理程序开始,以提供来自DB的链接,知道是哪个学生,然后把它保存到另一张桌子上。您需要几个表和sql调用。@rTomas:需要那么多表吗?我想我可以用一张桌子来做这件事*具有和自动递增ID,*用户ID(来自LDAP,它们的结构都类似于abc1234)*六列来表示视频链接,然后每当用户单击链接时,检查其ID是否已在表中。如果不是,请附加它。还将当前日期和时间附加到他们单击的链接。这里需要主键/外键吗?如果你能保证只有六个视频,并且永远不会有更多(或更少)或其他报告、统计数据,你可能想要运行,并且如果一个视频被观看不止一次,你不关心跟踪。。。是的,你可以做一个表格——它基本上是一个电子表格。@R出于好奇,添加更多链接会带来什么复杂情况?我是否可以创建另一列来表示新链接?它不需要填充任何数据,因为一旦用户单击新链接,它就会被填充。我对数据库不是很熟悉,但我不认为这会令人担忧。您好,这正是我想要做的。如何从会话中检索用户ID?剩下的我都知道了,但那部分我被难住了。在他们使用LDAP登录之后,我如何检索他们的凭据以存储在我的数据库中?我大概有5年没有使用LDAP做过任何事情了。我仔细阅读了php手册,并假设您有代码。您需要启动一个会话,并从登录脚本的帖子中检索用户名和密码<代码>如果($ldapbind){$\u会话['userid']=$ldapusername;头(“位置:http://yourserver.com/page.php);}否则{echo“login failed”}然后,您的脚本只需从
$\u会话
中获取用户ID,并使用该ID更新数据库。如果需要更多帮助,请告诉我。会话存储是否仅在单个页面上工作?我已经设置了一个登录页面,并且与LDAP的连接工作正常。我启动了一个会话并设置了会话变量。然后我将用户重新引导到“教程”页面。当我尝试访问此处存储的会话变量时,它们没有设置。如何使会话变量在域上持久化?您需要使用
session_start()在每一页上。在
之后声明它,因为您使用LDAP授权用户,所以只需要DB来跟踪链接点击。你可以通过多种方式来实现这一点,最简单的可能就是最好的。。一个以userID作为主键的数据库,然后为每个链接设置一列,在每个字段中设置一个简单的布尔值true或false(1或0),将默认值设置为0,然后我将脚本编码为look f