0

私はこれに頭を悩ませようとしています.次のコードを使用してクイズの答えをチェックし、比較の結果に応じて正しいか間違っているかを出力しています.答えのフィールドが黒の場合(これはフィードバック フォーム) 別のメッセージが表示されます。この状況でphpカウント関数を適用する方法を完全に理解することはできませんが、それを実行させようとしているのは、正しい答えと間違った答えの量を数え、2つを合計してから、%スコアを計算することができますそれ。

        <?php
// Make a MySQL Connection
// Construct our join query
$query = "SELECT * FROM itsnb_chronoforms_data_answerquiz a, itsnb_chronoforms_data_createquestions
q WHERE a.quizID='$quizID' AND a.userID='$userID' and q.quizID=a.quizID and
a.questionID = q.questionID ORDER BY a.cf_id ASC" or die("MySQL ERROR: ".mysql_error());
$result = mysql_query($query) or die(mysql_error());

// Print out the contents of each row into a table 
while($row = mysql_fetch_array($result)){
if ($row['correctanswer'] == ''){echo '<tr><td style="color:blue;">Thankyou for your feedback</td></tr>';}
elseif ($row['correctanswer'] == $row['quizselectanswer']){
echo '<tr><td style="font-weight:bold; color:green;">CORRECT</td></tr>';}
else {echo '<tr><td style="font-weight:bold; color:red;">INCORRECT</td></tr>';
}}
?>

私はこの例を見つけて、それをどのように扱うかを考えていましたが、それを使って if ステートメントの結果を数える方法を考えることはできませんか?.

<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland");
$result = count($people);

echo $result;
?>
4

4 に答える 4

2

2つのカウンターをインクリメントするだけ

$correct_answers = 0;
$incorrect_answers = 0;
while ($row = mysql_fetch_array($result)) {
    if ($row['correctanswer'] == '') {...
    } elseif ($row['correctanswer'] == $row['quizselectanswer']) {
        echo '<tr><td style="font-weight:bold; color:green;">CORRECT</td></tr>';
        $correct_answers++;
    } else {
        echo '<tr><td style="font-weight:bold; color:red;">INCORRECT</td></tr>';
        $incorrect_answers++;
    }
}
于 2012-11-28T11:31:01.393 に答える
1
 <?php
// Make a MySQL Connection
// Construct our join query
$query = "SELECT ... ";

$result = mysql_query($query) or die(mysql_error());

$countCorrect = 0;
$countIncorrect = 0;

// Print out the contents of each row into a table 
while($row = mysql_fetch_array($result)){
    if ($row['correctanswer'] == ''){echo '<tr><td style="color:blue;">Thankyou for your feedback</td></tr>';}
    elseif ($row['correctanswer'] == $row['quizselectanswer']){
        $countCorrect++;


        echo '<tr><td style="font-weight:bold; color:green;">CORRECT</td></tr>';}
        else {
        $countIncorrect++;
        echo '<tr><td style="font-weight:bold; color:red;">INCORRECT</td></tr>';
        }



}

echo ((int)($countCorrect/($countIncorrect + $countCorrect) * 100)) . "% answers were correct!" ;

?>
于 2012-11-28T11:34:04.610 に答える
1

if/elseif/else コンストラクトの各ブランチでカウンターを増やすだけです...

$counters = array( 'blank'=>0, 'correct'=>0, 'incorrect'=>0 );
// Print out the contents of each row into a table 
while($row = mysql_fetch_array($result)){
    if ( ''==$row['correctanswer'] ) {
        echo '<tr><td style="color:blue;">Thankyou for your feedback</td></tr>';
        $counters['blank'] += 1;
    }
    elseif ( $row['correctanswer']==$row['quizselectanswer'] ) {
        echo '<tr><td style="font-weight:bold; color:green;">CORRECT</td></tr>';
        $counters['correct'] += 1;
    }
    else {
        echo '<tr><td style="font-weight:bold; color:red;">INCORRECT</td></tr>';
        $counters['incorrect'] += 1;
    }
}

echo '#correct answers: ', $counters['correct'];
于 2012-11-28T11:29:37.847 に答える
1

正解数の変数を作ってみませんか?ループする質問ごとに、値を 1 ずつ増やします。

<?php
    $correct_answers = 0;
    while($questions) {
        if($answer_is_correct) {
            // Increment the number of correct answers.
            $correct_answers++;
            // Display the message you need to and continue to next question.
        }
        else {
            // Don't increment the number of correct answers, display the message
            // you need to and continue to the next question.
        }
    }
    echo 'You got ' . $correct_answers . ' question(s) right!';
于 2012-11-28T11:33:01.963 に答える