用PHP计算平均值

时间:2011-07-03 15:16:54

标签: php average

我有点问题。

我有虚拟实验室,学生将完成5个问题的调查,每个成本2分。糟糕的选择-2point,好的选择+ 2点。

所以,在最后,当学生按“向我显示结果”时,我希望该脚本从表“users”更新“media”字段并从表“laborator”更新“nota”字段。 该学生将获得更多结果,但如果他有结果4,则平均值必须为4,而不考虑其他结果。 我附上了一个PHP脚本,它不起作用,它没有计算我想要的平均值。

http://pastebin.com/S55C7nYQ

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)

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