gpt4 book ai didi

php - 完成测验后结束用户的回合

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

这篇文章的标题是不言自明的。假设我有一个用 PHP 编码的测验系统,并且用户登录以回答问题,在他/她正确回答测验后,我们将如何结束用户的轮次?

考虑这个流程图:

Quiz question flowchart

在用户正确回答问题后,我想编写一个可能的 PHP 函数,它将完全关闭该级别,这样用户就不必再次回答,除了通过不断回答和赚取不必要的钱来作弊点数。

我只是想知道是否有解决此问题的方法或解决方法。使用数据库来查明用户是否已经回答了问题已经在我的想法列表中。但我希望有人能想出更好的办法。我希望我说清楚了。

最佳答案

您如何在整个测验中跟踪他们的答案?我会使用 session ,将他们给出的每个答案与问题 ID 一起存储。在他们单击“完成”然后存储到数据库表之前,不要给他们任何积分:
他们从 session 中获得了哪些分数;当前问题 ID;他们的用户 ID

然后当用户提出问题时,检查数据库(大致):

SELECT
TotalPoints
FROM
tblQuestionsAnswered
WHERE
UserID = $UserId AND
QuestionID = $ThisQuestionId

如果没有返回,他们就没有从这个问题中得到任何分数。

您不想要或不需要 200 个表。每行存储一个表:
questionID、userID、totalpoints,可能还有其他内容

如果您希望能够在以后存储记录,即当他们注销、离开网站、稍后回来等时,没有更好的方法。
(请不要考虑使用文件,这种情况下会很乱)

您还需要考虑其他事情,比如如果他们为问题 A 打开一个 session ,如果他们转到问题 B,您是否要破坏另一个 session 并且他们必须从头开始问题 A?我很可能会或者你会到处开会,为什么会有人想要开始一个测验,然后去另一个测验,然后再回到那个测验。

如果您希望他们能够做到这一点,您最好也将他们的进度存储在数据库表中。或许您可以使用存储他们的分数的表(在我上面的示例中为 tblQuestionsAnswered)并有一个额外的列,如“IsComplete”。
如果将其设置为"is",则向他们展示他们已经完成的问题的分数,如果是“否”,则他们会从一个新的开始并完成该问题,如果设置为“partdone”,则您的脚本将查询另一个表(例如 tblQuestionProgress),将他们的进度从那个表拖到 session 中,从那个表中删除他们的进度,将另一个表设置为 IsComplete = no,然后他们就关闭了。

关于php - 完成测验后结束用户的回合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688916/

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