tom23
10.07.2003, 11:42:19
Problem polega ze dany skrypt sprawdza jak danu uczen zadl test.
Ale dodatkowo boss wymyslił ze trzeba zrobic zeby dany uczen mial mozliwosc zobaczenia ktore odpowiedzi byly poprawnie w trescie a ktore nie nie tylko ilosc poprawnych odpowiedzi.
tom23
10.07.2003, 11:43:11
[php:1:c2ae35a493]<?php
$lancuchtmp = strrev ($odtheg294290);
$pozycja = StrPos ($lancuchtmp,"|");
if ($pozycja != 0) {
$ParametrLogin = SubStr ($lancuchtmp, 0, $pozycja);
$ParametrNazwa = SubStr ($lancuchtmp, $pozycja + 1, StrLen ($lancuchtmp) - $pozycja-1);
}
else {
$ParametrLogin = $lancuchtmp;
$ParametrNazwa = $lancuchtmp;
}
$ParametrHaslo = strrev ($opwiop45312r);
if ($lokalny == 'true')
$polaczenie = mysql_connect ($HTTP_HOST, $ParametrLogin, $ParametrHaslo);
else
$polaczenie = mysql_connect ('127.0.0.1:3306', $ParametrLogin, $ParametrHaslo);
$wyborbazy = mysql_select_db ("Akademia");
$polecenie = "select date_format(current_date,'%Y-%m-%d')";
if ($pokazpolecenia != '') echo $polecenie."<br>";
$dzien = mysql_fetch_row (mysql_query ($polecenie));
$dzis = $dzien[0];
$polecenie = "select date_format(current_date,'%Y-%m-%d')";
if ($pokazpolecenia != '') echo $polecenie."<br>";
$dzien = mysql_fetch_row (mysql_query ($polecenie));
$dataDzis = $dzien[0];
$polecenie = "select current_time";
if ($pokazpolecenia != '') echo $polecenie."<br>";
$dzien = mysql_fetch_row (mysql_query ($polecenie));
$teraz = $dzien[0];
// odebranie danych
$ilepytan = $qc;
$idTestu = $tid;
//echo $tid;
$resultInsert = mysql_query("SELECT statusZakonczenia FROM testyUcznia2 WHERE
idTestu = $idTestu");
if ($resultInsert) {
$resultInsertFetch = mysql_fetch_row($resultInsert);
if ($resultInsertFetch[0] == 2) {
echo "<script language="JavaScript">
document.location.href="https://www.adres.pl/Akademia.php"</script>";
exit();
}
}
// echo $idTestu."<br>";
$resultUpdate = mysql_query("UPDATE testyucznia2 SET statusZakonczenia = 2,
czasZakonczenia = current_timestamp WHERE idTestu = $idTestu");
if (!$resultUpdate) {
print("Blad zapisywania konca testu >>>>> "."UPDATE testyucznia2 SET
statusZakonczenia = 2, czasZakonczenia = current_timestamp WHERE idTestu =
$idTestu");
exit();
}
$resultStart = mysql_query("SELECT czasRozpoczecia, czasZakonczenia FROM
testyucznia2 WHERE idTestu = $idTestu");
if (!$resultStart) {
print("Blad okreslania poczatku testu >>>> "."SELECT czasRozpoczecia FROM
testyucznia2 WHERE idTestu = $idTestu");
exit();
}
// dlugoscTestu 0 koniecTestu 2003-07-03 16:25:17, poczatekTestu 2003-07-03
16:22:52koniec 66 poczatek 10866 czas 360
$resultStartTab = mysql_fetch_row($resultStart);
$poczatekTestu = $resultStartTab[0];
$koniecTestu = $resultStartTab[1];
$poczatek = (substr($poczatekTestu, 11, 2) * 3600 + substr($poczatekTestu, 14, 2) *
60 + substr($poczatekTestu, 17, 2));
$koniec = (substr($koniecTestu, 11, 2) * 3600 + substr($koniecTestu, 14, 2) *
60 + substr($koniecTestu, 17, 2));
$czas = $ilepytan * 36;
$koniec = $koniec - $poczatek;
if ($wyborbazy != "") {
$polecenie = "SELECT u.idUcznia,
u.nazwisko,
u.imie,
p.nazwaPoziomu,
u.iloscGodzin,
p.idPoziomu,
p.modulowosc,
u.czyElastyczny,
u.idKonwersacji,
u.czyTest,
u.dataZakonczeniaKursu,
p.czestoscTestow
FROM Akademia.uczniowie u, poziomy p
WHERE p.idPoziomu = u.idPoziomu and u.login = '".$ParametrNazwa."'
and u.czyAktywny = 1";
if ($pokazpolecenia != '') echo $polecenie."<br>";
$tab = mysql_fetch_row (mysql_query ($polecenie));
$idUcznia = $tab[0];
$nazwiskoUcznia = $tab[1];
$imieUcznia = $tab[2];
$nazwaPoziomu = $tab[3];
$iloscGodzin = $tab[4];
$idPoziomu = $tab[5];
$modulowosc = $tab[6];
$czestosc = $tab[11];
}
$dobrych = 0;
$ileodpowiedzi;
// mysql_close ($polaczenie);
?>
<html>
<head>
<title>Akademia v1.0</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<link rel="stylesheet" href="./Akademia.css" type="text/css">
</head>
<body class=tlo>
<br><br>
<p align=center><font size=4>
<?//------------
if ($koniec > $czas) {
echo "<br><br>Niestety<br>";
echo "nie zmiesciłe¶ sie w czasie przeznaczonym na rozwiazanie tego
testu<br>";
echo "<b>Jutro spróbuj ponownie!</b><br>";
$wynik=0;
}
else {
// zmiescil sie w czasie
if ($pytanie1 > 0) {
mysql_query("UPDATE odpowiedziucznia2 SET odpowiedzUcznia =
".$pytanie1." where idTestu = $idTestu and lp = 1");
}
if ($pytanie2 > 0) {
mysql_query("UPDATE odpowiedziucznia2 SET odpowiedzUcznia =
".$pytanie2." where idTestu = $idTestu and lp = 2");
}
if ($pytanie3 > 0) {
mysql_query("UPDATE odpowiedziucznia2 SET odpowiedzUcznia =
".$pytanie3." where idTestu = $idTestu and lp = 3");
}
if ($pytanie4 > 0) {
mysql_query("UPDATE odpowiedziucznia2 SET odpowiedzUcznia =
".$pytanie4." where idTestu = $idTestu and lp = 4");
}
if ($pytanie5 > 0) {
mysql_query("UPDATE odpowiedziucznia2 SET odpowiedzUcznia =
".$pytanie5." where idTestu = $idTestu and lp = 5");
}
if ($pytanie6 > 0) {
mysql_query("UPDATE odpowiedziucznia2 SET odpowiedzUcznia =
".$pytanie6." where idTestu = $idTestu and lp = 6");
}
if ($pytanie7 > 0) {
mysql_query("UPDATE odpowiedziucznia2 SET odpowiedzUcznia =
".$pytanie7." where idTestu = $idTestu and lp = 7");
}
if ($pytanie8 > 0) {
mysql_query("UPDATE odpowiedziucznia2 SET odpowiedzUcznia =
".$pytanie8." where idTestu = $idTestu and lp = 8");
}
if ($pytanie9 > 0) {
mysql_query("UPDATE odpowiedziucznia2 SET odpowiedzUcznia =
".$pytanie9." where idTestu = $idTestu and lp = 9");
}
if ($pytanie10 > 0) {
mysql_query("UPDATE odpowiedziucznia2 SET odpowiedzUcznia =
".$pytanie10." where idTestu = $idTestu and lp = 10");
}
// sprawdzenie poprawnosci testu
$finalResult = mysql_query("select o.odpowiedzUcznia, e.odpPrawidlowa
FROM odpowiedziucznia2 o, testyucznia2 t, testy e where ".
"t.idTestu = o.idTestu and t.idTestu =
$idTestu and t.idPoziomu = e.idPoziomu and
e.nrLekcji = o.nrLekcji and ".
" o.nrPytania = e.nrPytania");
if (!$finalResult) {
echo "select o.odpowiedzUcznia, e.odpPrawidlowa FROM
odpowiedziucznia2 o, testyucznia2 t, testy e where ".
"t.idTestu = o.idTestu and t.idTestu =
$idTestu and t.idPoziomu = e.idPoziomu and
e.nrLekcji = o.nrLekcji and ".
" o.nrPytania = e.nrPytania";
exit();
};
while ($finalResultTab = mysql_fetch_row($finalResult)) {
if ($finalResultTab[0] == $finalResultTab[1])
$dobrych++;
}
$ilepytan = $ilepytan;
$wynik = ($dobrych / $ilepytan);
if ($dobrych > 0) {
echo "Poprawnie odpowiedziałe¶ na: $dobrych";
if ($dobrych == 1)
echo " pytanie";
if ($dobrych > 1 && $dobrych < 5)
echo " pytania";
if ($dobrych > 4)
echo " pytan";
}
else {
echo "Nie udalo Ci sie odpowiedzieć poprawnie na żadne pytanie<br>";
}
echo "<br>";
echo "Na możliwych: ";
echo "<b>$ilepytan</b> <br><br>";
echo "<Font size=+2 color=#EE1313><b><br>";
if ($wynik < 0.6) {
echo "You have to write it again. Sorry.";
}
else if ($wynik < 0.7) { //0.69
echo "Almost satisfactory, but you have to write it again.";
}
else if ($wynik < 0.8) { //0,79
echo "Passed, but are your satisfied with your score?";
}
else if ($wynik < 0.9) { //0,89
echo "OK.";
}
else if ($wynik <0.99) {
echo "Well done!";
}
else {
echo "Excellent! Congratulations!";
}
echo "</b></font>";
}
$wynik = $wynik*100;
$polecenie = "UPDATE testyucznia2 SET wynikTestu = $wynik WHERE idTestu =
$idTestu";
if ($pokazpolecenia != '') echo $polecenie."<br>";
$rezultat = mysql_query($polecenie);
//--------------
echo "</font><br><br><br><br><font size=+1>Nie zdałe¶ jeszcze TESTóW z
lekcji:";
$i=1;
$luk = 0;
echo "<ul><br>";
$polecenie = "SELECT g.nrLekcji, g.dataZajec FROM godziny g,
uczniowienalekcji u WHERE g.dataZajec = u.dataZajec AND g.idSali = u.idSali
AND g.nrGodziny = u.nrGodziny AND u.idUcznia = ".$idUcznia." AND g.idPoziomu
= ".$idPoziomu." order by dataZajec";
if ($pokazpolecenia != "") echo $polecenie."<BR>";
$rezultat = mysql_query($polecenie);
while ($tab = mysql_fetch_array ($rezultat)) {
$nrLekcji = $tab[0];
$dataZajec = $tab[1];
$liczba = $nrlekcji / 2;
$liczba = intVal($liczba);
$liczba = $nrLekcji - ($liczba * 2);
$stop = $modulowosc * $czestosc;
$i++;
$polecenie2 = "SELECT l.tematWyswietlany FROM lekcje l WHERE l.nrLekcji =
".$nrLekcji." AND l.idPoziomu = ".$idPoziomu."";
if ($pokazpolecenia != "") echo $polecenie2."<BR>";
$tab2 = mysql_fetch_array (mysql_query ($polecenie2));
$temat = $tab2[0];
/* $polecenie3 = "SELECT * FROM testyucznia WHERE idPoziomu = ".$idPoziomu.'
AND idUcznia = ".$idUcznia." AND odLekcji = ".OdLekcji." AND doLekcji =
".doLekcji."";
if ($pokazpolecenia != "") echo $polecenie3."<BR>";
if ($tab3 = mysql_fetch_array (mysql_query ($polecenie3))) {
echo "";
} else {
*/ if ($i==1)
$odLekcji=$nrLekcji;
if ($i==2 && $odLekcji=='')
$odLekcji=$nrLekcji;
if ($i==10) { // powinno byc -> $stop) {
// sprawdzenie, czy wyswietlac
$resultTestowy = mysql_query("SELECT 1 FROM testyucznia2 WHERE
idUcznia = $idUcznia AND idPoziomu = $idPoziomu AND odLekcji =
$odLekcji and wynikTestu > 69");
//print("<br>SELECT 1 FROM testyucznia2 WHERE idUcznia = $idUcznia AND
idPoziomu = $idPoziomu AND odLekcji = $odLekcji and wynikTestu >
69");
if (!$resultTestowy) {
print("SELECT 1 FROM testyucznia2 WHERE idUcznia = $idUcznia AND
idPoziomu = $idPoziomu AND $odLekcji = $odLekcji and wynikTestu >
69");
exit();
};
$resultTestowyTab = mysql_fetch_row($resultTestowy);
$doLekcji=($nrLekcji+1);
if ($resultTestowyTab[0] != 1) {
//$doLekcji=($nrLekcji+1);
echo "<li><a
href='Testy.php?data=".$dataZajec."&odLekcji=".$odLekcji."&doLe
kcji=".$doLekcji."'> Zdaj test </a><br>";
echo $temp.$dataZajec." ".$temat."<br>"; // <<<==
}
//--- tutaj bylo wyrzucenie na ekran daty i tematu lekcji ==||
};
if ($temat=='') echo "";
else {
$temp = $temp.$dataZajec." ".$temat."<br>";
if ($i==$stop || $i==($stop - 1)) {
// bylo wczesniej if ($i==10 || $i==9) {
echo "<br><br>";
$i=0;
$temp ="";
};
};
};
// };
echo "</ul>";
?>
</p>
</body>
</html>
?>[/php:1:c2ae35a493]
tom23
10.07.2003, 12:03:51
w tabeli odpowiedziucznia2 sa podane z jakiej lekcji mial pytanie i jakie to bylo pytanie. oraz oczywiscie jakiej odpowiedzi udzielil
wiec za pomoca statementu: SELECT pytanie, odp1, odp2, odp3, odp4 FROM testy WHERE idPoziomu = $idPoziomuUcznia and nrLekcji = $lekcjaZTabelkiOdpowiedziUcznia2 and nrPytania = $nrPytaniaZTabelkiOdpowiedziUcznia2 wyswietlasz tresc, na ktora uczen odpowiadal
z mojego rozumowania porzez porownanie pola odpowiedzucznia z tabelki odpowiedziucznia2 z polem odpPrawidlowa z tabelki testy okreslasz, czy bylo ok
Pomocy !!!!!!!
Jak rozwiazac ten problem
e-Gandalf
10.07.2003, 14:29:35
Aleosochosi?
To znaczy... znacznie latwiej byloby odpowiadac gdybys zadal pytanie. (no tak juz niestety jest...)