Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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
需要关于如何构建特定mySQL数据库的mySQL/php建议吗_Php_Mysql_Database - Fatal编程技术网

需要关于如何构建特定mySQL数据库的mySQL/php建议吗

需要关于如何构建特定mySQL数据库的mySQL/php建议吗,php,mysql,database,Php,Mysql,Database,下面的描述是一个简单的示例,包括问题和答案。但我的网站的逻辑是相似的 假设表格是: USERS table: USER_ID, etc QUESTIONS table: QUESTION_ID, TEXT, CATEGORY, CORRECT_RESPONSE, AVAILABLE RESPONSES table: QUESTION_ID, USER_ID, RESPONSE_VALUE PROFILE table: USER_ID, CATEGORY_Questions, YEAR, NUMB

下面的描述是一个简单的示例,包括问题和答案。但我的网站的逻辑是相似的

假设表格是:

USERS table: USER_ID, etc
QUESTIONS table: QUESTION_ID, TEXT, CATEGORY, CORRECT_RESPONSE, AVAILABLE
RESPONSES table: QUESTION_ID, USER_ID, RESPONSE_VALUE
PROFILE table: USER_ID, CATEGORY_Questions, YEAR, NUMBER_OF_ANSWERED, Number_OF_CORRECT, POINTS
用户可以在几个小时内回答这些问题。每个问题都有相同的3个答案选择是/否/视情况而定

在一段时间过去之前,没有人知道答案(即使是管理员)。同时,用户可以选择存储在RESPONSES表中的响应

一段时间后,我将手动将
正确的\u响应添加到mysql表中
,并将问题标记为
AVAILABLE=“NO”
。所以用户不能再回答这个问题了

然后,我想自动检查用户对每个不可用问题(ID)的响应值,以查看他们是否选择正确。然后为每个正确答案加上分数

我制作了另一个名为Profile的表,它存储用户ID、问题类别、回答的数量、正确的数量、时间段以及该类问题的分数。我这样做是为了更快地为每个类别的每个用户获取统计数据


因此,在我将一个问题“标记”为已完成(
AVAILABLE=“NO”
)并提交了正确的回答之后,检查用户正确的
RESPONSE\u值,然后更新配置文件表的最佳方法是什么?

通过用户循环并运行以下查询:

得到全部问题的回答

select responses.question_id from responses where responses.user_id=USER_ID
获得大量正确答案

select responses.question_id from responses where responses.user_id=USER_ID and responses.question_id = questions.question_id and responses.response_value=questions.correct_response
编辑


我假设你有某种管理界面。我只想添加一个按钮“更正答案”,它运行代码来更正所有答案。如果您没有管理界面,最简单的方法是将一个脚本放在一个受保护的文件夹中,该文件夹将运行更正。

要添加到Galen所说的内容中,您需要添加一个变量

 $num_correct++; while looping through the query
        update PROFILE SET Number_OF_CORRECT = $num_correct WHERE USER_ID=responses.user_id

谢谢你的回答。也许我不清楚。我不是指具体的查询,而是指使用什么方法。Cronjob、触发器等,以及具体如何执行?(我以前从未使用过)是的,我有一个管理面板。例如,您建议,当我添加正确的_响应并将问题标记为已完成时,也运行此代码,对吗?所以不需要cron作业、触发器等?是的,如果可以的话,您应该将代码合并到您的管理面板中,以便在问题标记为完成时使用。如果不可能,可以使用单独的脚本。不需要cron/triggers。这是最简单的部分…当您在收集此数据的所有用户之间循环时,请确保运行一个查询,用该信息更新该用户。