Dobra tu masz taki teścik zrobiony, który sprawdza odpowiedzi zgodnie z tym co podałeś w tabeli bazy, mówi ile miałeś dobrych odpowiedzi, ile złych i za każdą dobrą odpowiedź daje 2 punkty. Najpierw robimy sobie takie tabele w bazie:
pytania/
-----------------+---------------+--------------------+--------------
numer_pytania tresc_pytania liczba_odpowiedzi dobra_odp
-----------------+---------------+--------------------+--------------
pyt1 Jak.... ? 2 odp1
-----------------+---------------+--------------------+--------------
pyt2 Jak... ? 1 odp3
-----------------+---------------+--------------------+--------------
odpowiedzi/
----------------------+-----------------+---------------
numer_odpowiedzi numer_pytania odpowiedz
----------------------+-----------------+---------------
odp1 pyt1 Trzeba...
----------------------+-----------------+---------------
odp2 pyt1 Można...
----------------------+-----------------+---------------
odp3 pyt2 Ja bym...
----------------------+-----------------+---------------
odp4 pyt2 Hmm...
----------------------+-----------------+---------------
<?
function punkty($punkty)
{
if ($punkty == 1)
$wynik = punkt;
if ($punkty <= 4 && $punkty != 1)
$wynik = punkty;
elseif ($punkty > 4)
$wynik = punktów;
return $wynik;
}
function odpowiedzi($odpowiedz)
{
if ($odpowiedz == 1)
$wynik = pytanie;
if ($odpowiedz <= 4 && $odpowiedz != 1)
$wynik = pytania;
elseif (odpowiedz > 4)
$wynik = pytań;
return $wynik;
}
mysql_pconnect('localhost', 'user' ,'haslo'); // laczymy sie
mysql_select_db('baza'); // wybieramy baze z danymi
if ($_POST[wyslane])
{
$query = mysql_query("select p.tresc_pytania, p.numer_pytania, o.numer_odpowiedzi, o.odpowiedz from
pytania as p, odpowiedzi as o where p.numer_pytania = o.numer_pytania and p.dobra_odp =
o.numer_odpowiedzi ORDER By p.numer_pytania");
$i =0;
while($wiersz = mysql_fetch_array($query))
{
echo 'Treść pytania: ' . $wiersz[tresc_pytania] . '<BR>';
echo 'Numer pytania: ' . $wiersz[numer_pytania] . '<BR>';
echo 'Treść dobrej odpowiedzi: ' . $wiersz[odpowiedz] . '<BR>';
echo 'Numer dobrej odpowiedzi: ' . $wiersz[numer_odpowiedzi] . '<BR>';
echo 'Twoja odpowiedź: ' .$_POST[$wiersz[numer_pytania]]. '<BR><BR>';
$tablica[$i] = $wiersz[numer_odpowiedzi]; // tablica z dobrymi odpowiedzami
$tablica2[$i] = $_POST[$wiersz[numer_pytania]]; // tablica z twoimi odpowiedziami
$i++;
}
$punkty = 0;
$dobrze = 0;
for ($i=0;$i < mysql_num_rows($query);$i++)
{
if ($tablica[$i] == $tablica2[$i])
{
$punkty += 2;
$dobrze++;
}
}
echo 'Odpowiedziałeś poprawnie na ' .$dobrze.' '. odpowiedzi($dobrze) .'<BR>';
echo 'Odpowiedziałeś błędnie na ' .(mysql_num_rows($query) - $dobrze).' '.
odpowiedzi((mysql_num_rows($query) - $dobrze)) .'<BR>';
echo 'Zdobyłeś ' .$punkty.' ' .punkty($punkty) .' na ' .(mysql_num_rows($query) * 2). ' możliwe.';
}else{
$query = mysql_query("select numer_pytania, tresc_pytania, liczba_odpowiedzi from pytania ORDER BY
numer_pytania");
// pobieramy wszystkie pytania i sortujemy je względem numeru pytania
while($wiersz = mysql_fetch_array($query)) // dokładne wytłumaczenie funkcji mysql_fecth_array -
umieściłem tutaj: http://4programmers.net/view_faq.php?id=546
{
echo '<BR>Treść pytania:' . $wiersz[tresc_pytania];
echo '<BR>Liczba odpowiedzi:' . $wiersz[liczba_odpowiedzi];
echo '<BR>Odpowiedzi:<BR><FORM ACTION=html.php METHOD=POST><INPUT TYPE=hidden NAME=wyslane VALUE=sa>';
$query2 = mysql_query("select numer_odpowiedzi,odpowiedz from odpowiedzi where numer_pytania =
'".$wiersz[numer_pytania]."' ORDER BY numer_odpowiedzi");
// pobieramy wszystkie odpowiedz, do aktualnego pytania i sortujemy je względem kolumny numer_odpowiedzi
while($wiersz2 = mysql_fetch_array($query2))
{
echo '<INPUT TYPE=checkbox NAME='.$wiersz[numer_pytania].'
VALUE='.$wiersz2[numer_odpowiedzi].'>'.$wiersz2[odpowiedz] . '<BR>';
// wyświetlamy odpowiedzi do pytania
}
}
echo '<INPUT TYPE=submit VALUE=wyslij> ';
}
?>
Jak go sobie przeanalizujesz to wszystko będzie jasne :)
Pozdro... ;p