Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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
PHP和MySQL基于时间的测验应用程序_Php_Mysql_Sql_Database - Fatal编程技术网

PHP和MySQL基于时间的测验应用程序

PHP和MySQL基于时间的测验应用程序,php,mysql,sql,database,Php,Mysql,Sql,Database,我正在使用PHP和MySQL进行一个基于时间的测验项目,并将结果存储在下表中 表格:得分 sid |Question_ID|answer |is_correct|User_ID|score|score_calculated|time_taken 1 |10 |Manager|Y | 1 |200 | 0 |3.2 2 |10 |Emp |N | 2 |200 | 0

我正在使用PHP和MySQL进行一个基于时间的测验项目,并将结果存储在下表中

表格:得分

sid |Question_ID|answer |is_correct|User_ID|score|score_calculated|time_taken
1   |10         |Manager|Y         |  1    |200  |  0             |3.2
2   |10         |Emp    |N         |  2    |200  |  0             |2.4
3   |10         |Manager|Y         |  3    |200  |  0             |6.5
4   |10         |Other  |N         |  4    |200  |  0             |8.3
5   |11         |Yellow |N         |  1    |300  |  0             |2.3
5   |11         |green  |N         |  2    |300  |  0             |5.8
6   |11         |Red    |Y         |  3    |300  |  0             |6.4
7   |11         |Red    |Y         |  4    |300  |  0             |9.1
分数栏包含每个问题的分数

分数计算基于:

  • 使用的正确答案最短时间=100%
  • 使用的正确答案第二个最短时间=75%
  • 使用的正确答案第三个最短时间=50%
  • 其他正确答案=25%
  • 其他不正确答案=0
上述计算值需要在**“计算分数”**字段中更新。
有人能提出一个问题或方法来解决评分过程吗?

解决问题的最好方法是MysqlTrigger。
每次提交答案时(插入后),您都可以调用触发器。

通过按所用时间对记录进行排序来解决问题。稍后我将使用查询编辑此内容

在插入结果之前,是否使用php进行计算?您可以用sql编写一个长而难看的
if()/case
结构,但维护起来会很难看。@VaibhavDesai@whizzkid:谢谢您的回复。这些计算只能在四个条目到达后进行,因为我们需要得到第一个最短时间、第二个最短时间等等。你能给我举个视图或触发器的例子吗。再次感谢。@whizzkid请查看以上评论。@MarcB谢谢您的回复。在当前情况下,这是不可能的,因为来自不同用户的四个条目应该在计算之前到达(以获取时间)。@mikecurl91这些计算只能在四个条目到达后进行,因为我们需要获取第一个最短时间、第二个最短时间等。你能给我举个例子吗