27-01-2011, 01:28
Witam. Mam problem i nie wiem od czego zacząć. Mam skrypt do prowadzenia testu-quizu oparty na pliku tekstowym, a chciałbym aby takowy działał przy pomocy bazy MySql.
pytania i odpowiedzi sa w pliku tekstowym
gdzie poprawna odpowiedź jest zaraz za pytaniem, pytania i odpowiedzi są oddzielane znacznikiem " ' " .
Moze mi ktos podpowiedziec jak ma wyglądać kod php który się połączy z bazą i wyciagnie pytania i odpowiedzi tak aby się zintegrował z pozostałym kodem w skrypcie. Dodam jeszce ze test bedzie umieszczony na mojej stronie na ktorej mam juz zastosowane logowanie i rejestracje . Mam tez do tego logowania baze danch z jedna tabela, i teraz niewiem czy utworzyc nowa tabele osobno do testu czy opierac sie na tej samej poniewaz głownym zal witryny jest to ze przykladowa osoba wchodzi na strone loguje sie rozwiazuje test i po rozwiazaniu wynik zapisuje sie do bazy .
Prosze o podpowiedz i pomoc jak to zrealizowac?
Pozdrawiam.
Kod PHP:
<?php
$pytania = file("test.txt");
$k5 = "Ocena bardzo dobra";
$k4 = "Ocena dobra";
$k3 = "Ocena dostateczna";
$k2 = "Ocena dopuszczajaca!";
$k1 = "Ocena niedostateczna";
$f = $_POST["f"];
$wyniki = $_POST["wyniki"];
srand((double)microtime()*1000000);
if ($wyniki>0) {
$ile = count($pytania); $dobre=0;
for ($o=0; $o<$ile ;$o++) if ($f[$o]==1) $dobre++;
$srednia = sprintf("%2d",($dobre/$ile)*100);
echo "<center>Poprawne odpowiedzi: $dobre z $ile. ";
echo "Zaliczone $srednia procent testu.<p>";
if ($srednia<25) echo $k1;
if ($srednia>=25 && $srednia<50) echo $k2;
if ($srednia>=50 && $srednia<75) echo $k3;
if ($srednia>=75 && $srednia<99) echo $k4;
if ($srednia==100) echo $k5;
echo "</center>";
echo "<center><input type=submit value=\" zakoncz \"script language=\"javascript\"onClick=\"zamknijOkno()\"></script></center>";
} else {
echo "<form action=\"index.php\" method=\"post\">";
echo "<input type=\"hidden\" name=\"wyniki\" value=\"1\" />";
$ile = count($pytania);
for($i=0;$i<$ile;$i++) {
$nr = array_rand($pytania);
$tmp = $pytania[$nr];
$pytania[$nr] = $pytania[count($pytania)-1];
$pytania[count($pytania)-1] = $tmp;
$pyt = explode("`", array_pop($pytania));
echo "<p><b>"; echo $i+1; echo ". $pyt[0] </b><br>";
for ($b=1;$b<=count($pyt)-1;$b++)
$odp[]="<input type=radio name=\"f[$i]\"
value=\"$b\" />$pyt[$b]<br />";
$ileodp=count($odp);
for($io=0;$io<$ileodp;$io++) {
$nr=array_rand($odp);
$tmp=$odp[$nr];
$odp[$nr]=$odp[count($odp)-1];
$odp[count($odp)-1]=$tmp;
echo array_pop($odp);
}
}
echo "<center><br><input type=submit value=\" sprawdz \" /></br></center></form>";
}
?>
Kod:
Stolica polski jest?`warszawa`krakow`gniezno`kalisz
2+2=?`4`2`3`5
4+8=?`12`10`23`3
Moze mi ktos podpowiedziec jak ma wyglądać kod php który się połączy z bazą i wyciagnie pytania i odpowiedzi tak aby się zintegrował z pozostałym kodem w skrypcie. Dodam jeszce ze test bedzie umieszczony na mojej stronie na ktorej mam juz zastosowane logowanie i rejestracje . Mam tez do tego logowania baze danch z jedna tabela, i teraz niewiem czy utworzyc nowa tabele osobno do testu czy opierac sie na tej samej poniewaz głownym zal witryny jest to ze przykladowa osoba wchodzi na strone loguje sie rozwiazuje test i po rozwiazaniu wynik zapisuje sie do bazy .
Prosze o podpowiedz i pomoc jak to zrealizowac?
Pozdrawiam.