我有点问题。
我有虚拟实验室,学生将完成5个问题的调查,每个成本2分。糟糕的选择-2point,好的选择+ 2点。
所以,在最后,当学生按“向我显示结果”时,我希望该脚本从表“users”更新“media”字段并从表“laborator”更新“nota”字段。 该学生将获得更多结果,但如果他有结果4,则平均值必须为4,而不考虑其他结果。 我附上了一个PHP脚本,它不起作用,它没有计算我想要的平均值。
PS:media表示平均值,nota表示结果或音符,suma表示sum,nr_note表示音符数。
或示例:
我有:
6
5
6个
如果我执行 选择if('nota'< = 4,4,AVG('nota'))作为来自实验室的medie,其中'student'='teleorescu@yahoo.com' 它显示4这是错的,我的笔记中没有4。这有什么不对?
如果我有一个4,平均回报4,这里很好。
'nota'是int(2)
答案 0 :(得分:1)
看起来你可能在获得正确的平均值时遇到问题,因为所有测试的所有结果都被集中在一起(每个用户)?换句话说,如果学生多次参加考试,表格不会单独存储每个考试,只会将结果添加到相同用户的总分中。
因此,解决方案可能是在表中添加另一个字段,该字段具有用于特定测试的唯一编号,然后您必须在每次学生开始时在测试开始时生成此编号。如果您的测试在多个页面上,则需要将变量从一个页面传递到另一个页面或设置一个cookie。
答案 1 :(得分:0)
您可以使用以下逻辑
$sum = 0;
$size = 0;
if (answer == 1) // answer is correct
{
$sum += 2;
$size ++;
}
else
{
$sum -= 2;
$size ++;
}
$average = $sum / $size; // be sure to check size is not equal to 0