0

このシステムでは、ユーザーは任意の数の質問のクイズを作成でき、その情報はデータベースに保存されます。以下を使用してクイズをユーザーに出力しています。これは問題なく出力され、各回答から1つしか選択できません。各質問には同じ投稿名の 3 つの入力があり、q1 には ans1 ans1 ans1、q2 には ans2ans2 ans2 などがあります。入って来る。

    $x = 1;
    while($row = mysql_fetch_row($quiz)) {
        echo "Question ".$x.": ";
        echo "<a><b> $row['question'] </b></a>";
        echo "<input type='radio' name='ans".$x." /> ".$row['ans1']."<br />";
        echo "<input type='radio' name='ans".$x." /> ".$row['ans2']."<br />";
        echo "<input type='radio' name='ans".$x." /> ".$row['ans3']."<br />";
        $x = $x + 1;
    }

問題は次の php ページにあります。すべての投稿をループしようとしていて、投稿が正しい ans と一致する場合は、結果 = 結果 + 1 になります。次のようなループが必要です。

$x = 1;
while($row = mysql_fetch_row($quiz)) {
    if ($_POST[ans[$x]]=='$row['correct']' { $result = $result + 1; 
    }
    $x = $x + 1;
    }

その $_POST 値で変数を使用して、ループごとに ans1 ans2 と言う方法はありますか?

4

2 に答える 2

0
$x = 1;
while($row = mysql_fetch_row($quiz)) {
    if ($_POST['ans'.$x] == $row['correct']) { $result = $result + 1; }
    $x = $x + 1;
}

これで問題が解決することを願っています

于 2012-04-27T10:10:25.523 に答える
0

このようなことを試してください

$x = 1;
while($row = mysql_fetch_row($quiz)) {
    echo "Question ".$x.": ";
    echo "<a><b> $row['question'] </b></a>";
    echo "<input type='radio' name='ans[".$row['ansId']."][".$x."] ' /> ".$row['ans1']."<br />";
    echo "<input type='radio' name='ans[".$row['ansId']."][".$x."] ' /> ".$row['ans2']."<br />";
    echo "<input type='radio' name='ans[".$row['ansId']."][".$x."] ' /> ".$row['ans3']."<br />";
    $x = $x + 1;
}

あなたのフロントスクリプト:

$x = 1;
while($row = mysql_fetch_row($quiz)) {
if ($_POST['ans'][$row['ansId']][$x]=='$row['correct']' { 
    $result = $result + 1; 
}
$x = $x + 1;
}
于 2012-04-27T10:14:07.540 に答える