Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Sprawdzenie poprawności odpowiedzi w Quizie
Forum PHP.pl > Forum > Przedszkole
adi22
Witam. Mam taki problem. Zrobiłem 2 tabele w bazie. Pierwsza "pytania" ma pola: id (int), pytanie(varchar), odpowiedz1(varchar),odpowiedz2(varchar),odpowiedz3(varchar),odpowiedz4(varchar),
poprawna (int). Druga tabela to "wyniki", pola: indeks (int), punkty (int). Zrobiłem test który pobiera i losuje pytania z bazy(to działa prawidłowo), ale niestety mam problem ze sprawdzeniem rozwiązania testu. W tabeli "pytania" w polu "poprawna" przy dodawaniu pytania wpisywanie są wartości od 1 od 4 w zależności która odpowiedź jest poprawna. Przy rozwiązywaniu test do każdej odpowiedzi jest przypisane value="1" lub "2" lub "3" lub "4".
Pierwszy kod to plik który rowiązuje test i przesyłane dane do następnego który zlicza wynik i podaje go użytkownikowi.

PROSZĘ O POMOC, bo już naprawdę nie mogę z tym dać rady - jestem początkujący winksmiley.jpg Jak zrobić żeby pokazywało dobry wynik?questionmark.gifquestionmark.gif
Wydaje mi sie że trzeba zrobić odwołanie do poprawnej odpowiedzi i porównanie jej z przesłaną w teście, tylko jak?
Kod
<?

$conn = mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć z bazą MySQL");
$db = mysql_select_db ("strona", $conn) or die (mysql_error());

$wynik = mysql_query("select * from pytania ORDER BY RAND() LIMIT 3;");
if (mysql_num_rows ($wynik)>0)
    {    
    $i=1;
    print '<form method="post" action="">';
    print '<INPUT TYPE="hidden" name="id" value='.$id.'>';
    while($pytanie = mysql_fetch_array($wynik))
    {
        print '<font face="Arial" size="3">'.$i.'.</font>';
        print '<font face="Arial" size="3">'.$pytanie['pytanie'].'</font><br>';
        print '<font face="Arial" size="2"><input type="radio" name="poprawna" value="1" />'.$pytanie['odpowiedz1'].'<br></font>';
        print '<font face="Arial" size="2"><input type="radio" name="poprawna" value="2" />'.$pytanie['odpowiedz2'].'<br></font>';
        print '<font face="Arial" size="2"><input type="radio" name="poprawna" value="3" />'.$pytanie['odpowiedz3'].'<br></font>';
        print '<font face="Arial" size="2"><input type="radio" name="poprawna" value="4" />'.$pytanie['odpowiedz4'].'<br></font>';
        print '<br><hr>';
        $i++;
    }
    print '<INPUT type="submit" name="wyslij" value="Pokaż wynik">';
}

?>
<p><input type="hidden" name="indeksh" value="<?php echo trim($_POST['indeks']);?>">
</p>


Kod
<?php
mysql_connect('localhost', 'root', 'krasnal');
mysql_select_db('strona');

if(isset($_POST['wyslij']))
{
$sql = mysql_query("SELECT poprawna FROM pytania WHERE 'id' ");
$odp = mysql_query($sql);  

while($pytanie = mysql_fetch_array($odp)){

    $punkty = 0;

    if($_POST['poprawna'] == '$odp')
         $punkty++;
}

  echo 'Liczba zdobytych punktów: <b>'.$punkty.'</b>';

        mysql_query('INSERT INTO wyniki (indeks, punkty) VALUES(\''.trim($_POST['indeksh']).'\','.$punkty.')');
}
?>
nospor
http://forum.php.pl/index.php?showtopic=16...mp;#entry801975
Jeden temat w zupełności wystarczy
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.