繁体   English   中英

如何使用mysql和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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM