![](/img/trans.png)
[英]How can I track user progress of an articulate presentation (SCORM/TinCan) using php
[英]how to code a system to track user learning progress using mysql and php
我想知道如何通过mysql和php在在线测验中有效记录和显示用户进度。 如果用户想跳过某些问题或关闭屏幕,我希望他们回来并查看问题列表项或其他内容旁边的“完成”,以查看进度。
问题或担忧实际上是如何继续存储进度以及如何检查进度。
这是我为这个问题简化的数据库设计
表1:用户字段:ID,用户名,密码,用户名,进度(是的,我在此处具有称为进度的字段)
表2:问题字段:ID,课程,问题,提示,答案
因此,如果用户完成了一个问题,那么在进度字段中,我将在其中添加question_id。
在带有问题列表的主页上,将用户ID传递到页面中后,我将抓住它的进度字段,因此...
select progress from user where id = $user_id
我可能会获得所有这些数组以及已完成问题的所有ID
然后,我必须为每个问题做一个if语句,“如果问题ID =进度[id]然后回显“完成””这种事情。
这看起来有效吗? 还是您会怎么做? 我会很感激在线上做这种事情的所有教程,这样我可以对发生的事情有更好的了解。 谢谢
我会将回答的问题存储在自己的表中。
question_id | user_id
1 1
2 1
13 1
现在您可以有效地获得所有已完成的问题
SELECT q.*
FROM questions q
INNER JOIN answered_questions aq ON aq.question_id = q.id AND aq.user_id = 1;
或尚未完成的问题
SELECT q.*
FROM questions q
LEFT JOIN answered_questions aq ON aq.question_id = q.id AND aq.user_id = 1
WHERE aq.id IS NULL;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.