phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

Jak mogę sprawdzić, czy wybór użytkownika w quizie jest prawidłowy?

Oto kolejna próba pomocy.

Właściwie napisałem „kompletne rozwiązanie” i w trakcie tego procesu odkryłem kilka małych błędów w twoim kodzie – plus kilka rzeczy, których po prostu nie mogłem zrozumieć.

Główny błąd:wszystkie twoje przyciski opcji mają tę samą wartość ($x), więc bez względu na to, który przycisk naciśniesz dla pytania 1, odpowiedź to „1” itd. Były inne rzeczy, które zrobiłeś, których nie mogłem do końca zrozumieć - więc zamiast tego stworzyłem prosty przepływ — jedna strona zawiera pytania, a druga ocenia wyniki.

Strona pytań (zaciemniłem parametry dostępu do mojej bazy danych - nie, nie używam hasła "hasło" jako hasła!):

<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>

i assessment.php:EDIT:Zmieniłem nieco kod, aby dane wyjściowe były „czystsze”, i dodałem czerwony/zielony dotyk, aby wyświetlić pytania, na które udzielono poprawnej i niepoprawnej odpowiedzi. Oczywiście możesz zrobić to znacznie dalej, jeśli chcesz...

<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>

Dało to (dla prostego, złożonego z trzech pytań wielokrotnego wyboru) oczekiwanych rezultatów. Daj mi znać, czy to działa dla Ciebie!




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. phpMyAdmin nie pokazuje dodanych kolumn

  2. WAMPServer phpMyadmin Przekroczono maksymalny czas wykonania 360 sekund

  3. phpMyAdmin BŁĄD:mysqli_real_connect():(HY000/1045):Odmowa dostępu dla użytkownika 'pma'@'localhost' (przy użyciu hasła:NIE)

  4. Warunkowe wybieranie kolumny MYSQL

  5. MySQL wyprowadza zachodnie kodowanie w pliku PHP UTF-8