sql >> Databáze >  >> Database Tools >> phpMyAdmin

Jak zjistím, zda je volba uživatele v kvízu správná?

Zde je další pokus, jak vám pomoci.

Ve skutečnosti jsem napsal "kompletní řešení" a během toho jsem objevil několik malých chyb ve vašem kódu - plus některé věci, kterým jsem prostě nerozuměl.

Hlavní chyba:všechny vaše přepínače mají stejnou hodnotu ($x), takže bez ohledu na to, jaké tlačítko stisknete u otázky 1, odpověď je „1“ atd. Udělali jste i jiné věci, na které jsem nemohl tak úplně přijít – takže jsem místo toho vytvořil jednoduchý tok – jednu stránku, která klade otázky, a druhou, která hodnotí výsledky.

Stránka s otázkami (Zatemnil jsem přístupové parametry pro svou databázi – ne, nepoužívám „heslo“ jako heslo!):

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

a vyhodnotit.php:EDIT:Trochu jsem změnil kód, aby byl výstup "čistší", a přidal jsem červený/zelený dotyk, aby se zobrazily otázky, které byly zodpovězeny správně a nesprávně. Je zřejmé, že pokud chcete, můžete tyto věci posunout mnohem dále...

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

To přineslo (pro jednoduchý výběr ze tří otázek, který jsem udělal) očekávané výsledky. Dejte mi vědět, jestli to pro vás funguje!




  1. Vložení sloupce do již existující tabulky v phpmyadmin

  2. Po upgradu na Mountain Lion (pomocí MAMP) nelze získat přístup k databázím MySQL

  3. phpMyAdmin #1062 – Duplicitní záznam '' pro klíč 'PRIMARY'

  4. Import .sql do MS Access pomocí OBDC