如何使用PHP计算测验分数?

如何使用PHP计算测验分数?,php,html,function,count,Php,Html,Function,Count,我正在做测验。我想计算用户提交尝试后获得的总分。如何创建一个结果页面,显示用户提交答案后获得的分数。如何获得总分,使每个正确答案得到1/(测验中的问题总数) 这就是我目前所拥有的,我似乎无法让它工作 <?php require_once 'getData.php'; require_once 'testing.php'; foreach( $quizHistoryQ as $index => $arr ){ $answer=$arr['answer'];

我正在做测验。我想计算用户提交尝试后获得的总分。如何创建一个结果页面,显示用户提交答案后获得的分数。如何获得总分,使每个正确答案得到1/(测验中的问题总数)

这就是我目前所拥有的,我似乎无法让它工作

<?php
require_once 'getData.php';
require_once 'testing.php';



foreach( $quizHistoryQ as $index => $arr ){
    $answer=$arr['answer'];  


    if (!isset($_POST['submitter'])) {
    } else {
        $num = (int) $_POST['num'];
        $postedanswer = str_replace("_"," ",$_POST['answer']);
        if ($postedanswer == $answers[$num]['0']) {
            $_SESSION['score']++;
            $_SESSION['correct'][] = $postedanswer;
        } else {
            $_SESSION['wrong'][] = $postedanswer;
        }
        if ($num &lt; count($questions)-1) {
            $num++;
        } else {
            $last = true;
            $_SESSION['finished'] = 'yes';
        }
    }
}

看起来您没有正确比较答案

更改此项:

if ($postedanswer == $answers[$num]['0']) {
为此:

if ($postedanswer == $answer) {
另外,您是否在代码中的任何地方调用
会话\u start
?不清楚您是否正在这样做。

首先,这是错误的:

if ($num &lt; count($questions)-1) {

在HTML中用于编写
您应该缩进第一个代码段的代码。
如果($num count($questions)-1)
应该是
如果($num
谢谢您的帮助,但我仍然无法让代码正常工作。我已经贴了一张剪贴画,上面的错误是我无法找出哪里出了问题。你能帮我吗?嗨!谢谢你的帮助,但在实施了你的建议后,我仍然会出错。也许我点错菜了。你能给我发电子邮件告诉我密码吗?谢谢,我不会为你写完整的代码。如果其中一个答案解决了此问题的主要问题,请接受答案。如果你遇到一个新问题,问一个新问题。
if ($num &lt; count($questions)-1) {
if ($num < count($questions)-1) {
if ($postedanswer == $answers[$num]['0']) {
if ($postedanswer == $answer) {
 $answer=$arr['answer'];
$postedanswer = str_replace("_"," ",$_POST['answer']);
array(3) {
  ["Q1"]=>
  array(1) {
    [0]=>
    int(1)
  }
  ["Q2"]=>
  array(1) {
    [0]=>
    int(5)
  }
  ["Q3"]=>
  array(1) {
    [0]=>
    int(2)
  }
}
name='answers[{$index}]'
array(1) {
  ["answers"]=>
  array(3) {
    ["Q1"]=>
    int(1)
    ["Q2"]=>
    int(5)
    ["Q3"]=>
    int(2)
  }
}
foreach( $quizHistoryQ as $index => $arr ){
    $answer = $arr['answer']; 
    $postedanswer = intval( $_POST['answers'][$index] );
    if ( $answer == $postedanswer ) {
        $_SESSION['score']++;
    }
}