sql >> データベース >  >> Database Tools >> phpMyAdmin

クイズでのユーザーの選択が正しいかどうかを確認するにはどうすればよいですか?

    これがあなたを助けるための別の試みです。

    私は実際に「完全な解決策」を書きましたが、その過程でコードにいくつかの小さなバグが見つかりました。それに加えて、理解できなかったことがいくつかあります。

    主なバグ:すべてのラジオボタンの値($ x)が同じであるため、質問1でどのボタンを押しても、答えは「1」などです。他にも、よくわからないことがありました。代わりに私が行ったのは、単純なフローを作成することでした。1つは質問をするページで、もう1つは結果を評価するページです。

    質問ページ(データベースのアクセスパラメータをわかりにくくしました-いいえ、パスワードとして「password」を使用していません!):

    <html>
    <body>
    <form action="./evaluate.php" method="post">
    <?php
    $server = mysql_connect ('localhost', 'username, 'password');
    mysql_select_db("questionnaire", $server);
    
    $question = mysql_query("SELECT * FROM `Questions`;");
    $x = 0;
    while ($row = mysql_fetch_assoc($question))
    {
       echo $row['question'] . '<br />';
       echo '<input type="radio" name="a'.$x.'" value=1 />' .$row['answer1'] . '<br />';
       echo '<input type="radio" name="a'.$x.'" value=2 />' .$row['answer2'] . '<br />';
       echo '<input type="radio" name="a'.$x.'" value=3 />' .$row['answer3'] . '<br />';
       echo '<input type="radio" name="a'.$x.'" value=4 />' .$row['answer4'] . '<br />';
       $x = $x + 1;
    
    }
    mysql_close($server);
    ?>
    
    <input type="submit" name="Submit" value="Submit" />
    <br>
    </form>
    </body>
    </html>
    

    そしてevaluate.php:EDIT:出力を「よりクリーン」にするためにコードを少し変更し、赤/緑のタッチを追加して、正しくおよび誤って回答された質問を表示します。もちろん、必要に応じて、これらのことをさらに進めることができます...

    <html>
    <body>
    
    <?php
    $server = mysql_connect ('localhost', 'username', 'password');
    mysql_select_db("questionnaire", $server);
    
    $question = mysql_query("SELECT * FROM `Questions`;");
    $x = 0;
    $score = 0;
    while ($row = mysql_fetch_assoc($question))
    {
        echo $row['question'] . '?<br />';
    
        $answered = $row['answer'.$_POST['a'.$x]] ;
        $correct = $row['correct'] ;
    
        if ($answered == $correct ) {
            $score++;
            $acolor = 'green' ;
        }
        else {
            $acolor = 'red' ;
        }
    
        echo 'you answered <font color=' . $acolor . '>' . $answered . '<font color=black> <br />';
    
    
        echo 'the correct answer was ' . $correct . '<br />' ;
        echo '-------------------------------------- <br />' ;
    
        $x = $x + 1;
    }
    echo 'You had a total of ' . $score . ' out of ' . $x . ' questions right!';
    mysql_close($server);
    ?>
    
    </body>
    </html>
    

    これにより、(私が行った単純な3つの質問の複数の選択に対して)期待される結果が得られました。それがあなたのために働くかどうか私に知らせてください!




    1. 個別の使用時に値を制限する方法

    2. PHP7 Apache / 2.4.7(Ubuntu)にphpmyadminをインストールするのに問題があります

    3. phpMyAdminに似ていますが、SQL Server用ですか?

    4. MariaDB OpenWorks 2019