gpt4 book ai didi

php - 如何使用 mysql 和 php 编写一个系统来跟踪用户学习进度

转载 作者:行者123 更新时间:2023-11-29 06:09:06 25 4
gpt4 key购买 nike

我想知道如何使用mysql和php高效地记录和显示在线测验中用户的进度。如果用户想跳过某些问题或关闭屏幕,我希望他们回来并通过在问题列表项或其他内容旁边显示“已完成”来查看所取得的进度。

问题或担忧实际上是如何存储该进度以及如何检查它。

这是我为了这个问题而简化的数据库设计

表1:用户字段:id、用户名、密码、用户名、进度(是的,我这里有一个名为“进度”的字段)

表 2:问题字段:id、类(class)、问题、提示、答案

因此,如果用户完成了一个问题,那么我会在进度字段中附加 Question_id。

在带有问题列表的主页上,我会在用户 ID 传递到页面后获取其进度字段,以便...

select progress from user where id = $user_id

我可能会得到所有这些数组以及已完成问题的所有 id

然后我必须为每个问题做一个 if 语句“if Question id = Progress [id] then echo“completed””之类的语句。

这看起来有效吗?或者你还能怎么做?我很感激任何在线教程可以做这种事情,这样我就可以更好地了解正在发生的事情。谢谢

最佳答案

我会将回答的问题存储在他们自己的表中。

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;

关于php - 如何使用 mysql 和 php 编写一个系统来跟踪用户学习进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9961312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com