示例#1
0
function izvjestaj_predmet()
{
    global $userid, $user_nastavnik, $user_studentska, $user_siteadmin;
    // Parametri upita
    $predmet = intval($_REQUEST['predmet']);
    $ag = intval($_REQUEST['ag']);
    // sumiraj kolone za zadace i prisustvo
    if ($_REQUEST['skrati'] == "da") {
        $skrati = 1;
    } else {
        $skrati = 0;
    }
    // ako ova opcija nije "da", prikazuje se samo zadnji rezultat na svakom parcijalnom, ili samo integralni ispit (ako je bolji)
    if ($_REQUEST['razdvoji_ispite'] == "da") {
        $razdvoji_ispite = 1;
    } else {
        $razdvoji_ispite = 0;
    }
    // nemoj razdvajati studente po grupama (neki su trazili ovu opciju)
    if ($_REQUEST['sastavi_grupe'] == "da") {
        $sastavi_grupe = 1;
    } else {
        $sastavi_grupe = 0;
    }
    // tabela za samo jednu grupu
    $grupa = intval($_REQUEST['grupa']);
    // Naziv predmeta - ovo ujedno provjerava da li predmet postoji
    $q10 = myquery("select naziv from predmet where id={$predmet}");
    if (mysql_num_rows($q10) < 1) {
        zamgerlog("nepoznat predmet {$predmet}", 3);
        // nivo 3: greska
        biguglyerror("Traženi predmet ne postoji");
        return;
    }
    $q15 = myquery("select naziv from akademska_godina where id={$ag}");
    if (mysql_num_rows($q15) < 1) {
        zamgerlog("nepoznata akademska godina {$ag}", 3);
        // nivo 3: greska
        biguglyerror("Tražena godina ne postoji");
        return;
    }
    ?>
<p>Univerzitet u Sarajevu<br/>
Elektrotehnički fakultet Sarajevo</p>

<h1><?php 
    echo mysql_result($q10, 0, 0);
    ?>
</h1>
<h3>Akademska <?php 
    echo mysql_result($q15, 0, 0);
    ?>
 godina - Izvještaj o predmetu</h3>
<?php 
    // Koristimo ulogu iz /index.php da odredimo da li će se prikazati imena...
    $imenaopt = 1;
    if (!$user_nastavnik && !$user_studentska && !$user_siteadmin) {
        $imenaopt = 0;
        print "<p><b>Napomena:</b> Radi zaštite privatnosti studenata, imena će biti prikazana samo ako ste prijavljeni kao nastavnik/saradnik.</p>\n";
    }
    // SPISAK SVIH STUDENATA NA PREDMETU
    // Razlog za generisanje ovog spiska je sporost podupita koji vraca studente
    // koji nisu ni u jednoj grupi
    // Umjesto toga cemo napraviti spisak studenata na predmetu, a zatim izbacivati
    // iz njega elemente po grupama, tako da ce na kraju ostati samo oni koji nisu
    // u grupi
    $imeprezime = $brindexa = array();
    $q10 = myquery("select o.id, o.prezime, o.ime, o.brindexa from osoba as o, student_predmet as sp, ponudakursa as pk where sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} and sp.student=o.id");
    while ($r10 = mysql_fetch_row($q10)) {
        $imeprezime[$r10[0]] = "{$r10['1']} {$r10['2']}";
        $brindexa[$r10[0]] = "{$r10['3']}";
    }
    uasort($imeprezime, "bssort");
    // bssort - bosanski jezik
    // SPISAK GRUPA
    $spisak_grupa = array();
    if ($sastavi_grupe == 0) {
        if ($grupa > 0) {
            // Samo odabrana grupa
            $q20 = myquery("select id,naziv from labgrupa where predmet={$predmet} and akademska_godina={$ag} and id={$grupa}");
            $spisak_grupa[mysql_result($q40, 0, 0)] = mysql_result($q40, 0, 1);
        } else {
            // Spisak grupa moramo sortirati
            $q20 = myquery("select id,naziv from labgrupa where predmet={$predmet} and akademska_godina={$ag} and virtualna=0");
            while ($r20 = mysql_fetch_row($q20)) {
                $spisak_grupa[$r20[0]] = $r20[1];
            }
            natsort($spisak_grupa);
            // "natural sort" - npr. "Grupa 10" dodje iza "Grupa 9"
        }
    }
    // ID grupe "[Svi studenti]" trebamo saznati iz baze
    $q25 = myquery("select id from labgrupa where predmet={$predmet} and akademska_godina={$ag} and virtualna=1");
    if (mysql_num_rows($q25) < 1) {
        zamgerlog("predmet pp{$predmet} ag{$ag} nema virtuelnu grupu!", 3);
        $id_virtualne_grupe = 0;
    } else {
        $id_virtualne_grupe = mysql_result($q25, 0, 0);
    }
    $spisak_grupa[0] = "[Bez grupe]";
    // Dodajemo "nultu grupu" kojoj svi pripadaju
    // SPISAK ISPITA
    // Ujedno generisemo dio zaglavlja tabele koji se tice ispita
    $broj_ispita = 0;
    $ispit_zaglavlje = "";
    $oldkomponenta = 0;
    if ($razdvoji_ispite == 1) {
        $orderby = "i.datum,i.komponenta";
    } else {
        $orderby = "i.komponenta,i.datum";
    }
    // Prikazujemo I parc, pa II parc, pa Integralni, pa Usmeni (jer tim redom idu IDovi komponenti)
    $q30 = myquery("select i.id, UNIX_TIMESTAMP(i.datum), k.id, k.kratki_gui_naziv, k.tipkomponente, k.maxbodova, k.prolaz, k.opcija from ispit as i, komponenta as k where i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=k.id order by {$orderby}");
    $imaintegralni = 0;
    $ispit_id_array = $ispit_komponenta = $komponenta_maxb = array();
    while ($r30 = mysql_fetch_row($q30)) {
        $komponenta = $r30[2];
        $imeispita = $r30[3];
        $tipkomponente = $r30[4];
        if ($razdvoji_ispite == 1) {
            $ispit_zaglavlje .= "<td align=\"center\">{$imeispita}<br/> " . date("d.m.", $r30[1]) . "</td>\n";
            $broj_ispita++;
        } else {
            if ($komponenta != $oldkomponenta && $tipkomponente != 2) {
                // 2 = integralni
                $oldkomponenta = $komponenta;
                $ispit_zaglavlje .= "<td align=\"center\">{$imeispita}</td>\n";
                $broj_ispita++;
            } else {
                if ($tipkomponente == 2) {
                    $imaintegralni = 1;
                }
            }
        }
        $ispit_id_array[] = $r30[0];
        $ispit_komponenta[$r30[0]] = $r30[2];
        // Pripremamo podatke o komponentama
        $komponenta_tip[$r30[2]] = $r30[4];
        $komponenta_maxb[$r30[2]] = $r30[5];
        $komponenta_prolaz[$r30[2]] = $r30[6];
        $komponenta_opcija[$r30[2]] = "{$r30['7']}";
    }
    // Racunamo koliko je bilo moguce ostvariti bodova na predmetu (radi racunanja procenta)
    $mogucih_bodova = 0;
    foreach ($komponenta_maxb as $kid => $kmb) {
        if ($komponenta_tip[$kid] != 2 || $imaintegralni == 1 && $broj_ispita < 2) {
            // osim ako je to jedini ispit
            $mogucih_bodova += $kmb;
        }
    }
    // Ostale komponente cemo sabrati nesto kasnije...
    // Za slucaj da prof odrzi integralni bez parcijalnih
    if ($imaintegralni == 1 && $broj_ispita < 2) {
        // $razvdoji_ispite=1; goto // Zaglavlje tabele ispita
        // no php ne podržava goto :(
        $broj_ispita = 2;
        // Ovo ce i dalje biti deformisano, ali nesto manje deformisano nego ranije
    }
    // SPISAK KOMPONENTI KOJE NISU ISPITI
    $ostale_komponente = array();
    // 1 = parcijalni ispit, 2 = integralni ispit
    $q40 = myquery("select k.id, k.kratki_gui_naziv, k.tipkomponente, k.maxbodova from komponenta as k, akademska_godina_predmet as agp, tippredmeta_komponenta as tpk where agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente!=1 and k.tipkomponente!=2 and agp.akademska_godina={$ag}");
    while ($r40 = mysql_fetch_row($q40)) {
        $mogucih_bodova += $r40[3];
        // Ako ispis nije skraceni, u ovu kategoriju stavljamo samo fiksne komponente
        if ($skrati != 1 && $r40[2] != 5) {
            continue;
        }
        // 5 = fiksna komponenta
        $ostale_komponente[$r40[0]] = $r40[1];
    }
    // SPISAK ZADACA
    // Generise se dio zaglavlja za zadace i jos neki korisni podaci
    $zadaca_zaglavlje1 = $zadaca_zaglavlje2 = "";
    if ($skrati != 1) {
        $komponente_zadace = $zadace_maxbodova = array();
        $zad_id_array = $zad_brz_array = $zad_mogucih = array();
        $q115 = myquery("SELECT k.id, k.gui_naziv, k.maxbodova FROM tippredmeta_komponenta as tpk, komponenta as k, akademska_godina_predmet as p\n\tWHERE p.predmet={$predmet} and p.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente=4 and p.akademska_godina={$ag} ORDER BY k.id");
        while ($r115 = mysql_fetch_row($q115)) {
            $komponente_zadace[] = $r115[0];
            $zadace_maxbodova[$r115[0]] = $r115[2];
            $brzadaca = 0;
            $zadace_zaglavlje = "";
            // Razvrstavamo zadaće po komponentama
            $q120 = myquery("select id,naziv,zadataka,bodova from zadaca where predmet={$predmet} and akademska_godina={$ag} and komponenta={$r115['0']} order by id");
            while ($r120 = mysql_fetch_row($q120)) {
                $zadace_zaglavlje .= "<td width=\"60\">{$r120['1']}</td>\n";
                $zad_id_array[] = $r120[0];
                $zad_brz_array[$r120[0]] = $r120[2];
                $zad_mogucih[$r120[0]] = $r120[3];
                $brzadaca++;
                $minw += 60;
            }
            if ($brzadaca > 0) {
                $zadaca_zaglavlje1 .= "<td align=\"center\" colspan=\"{$brzadaca}\">{$r115['1']}</td>\n";
                $zadaca_zaglavlje2 .= $zadace_zaglavlje;
            } else {
                $zadaca_zaglavlje1 .= "<td align=\"center\" rowspan=\"2\">{$r115['1']}</td>\n";
            }
        }
    }
    // CACHE REZULTATA ZADAĆA
    // Plan je sljedeći:
    // Učitamo sve podatke iz tabele u nizove i onda ih samo prikažemo
    // Trebalo bi biti brže od komplikovanih ifova i for petlji
    // kao i od subqueries koji su očajno spori
    if ($skrati != 1) {
        // Ako je skracen ispis, samo cemo koristiti komponentu
        $zadace = array();
        if ($grupa > 0) {
            $q50 = myquery("SELECT z.zadaca,z.redni_broj,z.student,z.status,z.bodova\n\t\tFROM zadatak as z,student_labgrupa as sl \n\t\tWHERE z.student=sl.student and sl.labgrupa={$grupa}\n\t\tORDER BY id");
        } else {
            $q50 = myquery("SELECT z.zadaca,z.redni_broj,z.student,z.status,z.bodova\n\t\tFROM zadatak as z,student_predmet as sp, ponudakursa as pk\n\t\tWHERE z.student=sp.student and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}\n\t\tORDER BY z.id");
        }
        while ($r50 = mysql_fetch_row($q50)) {
            // Ne brojimo zadatke sa statusima 1 ("Ceka na pregled") i
            // 4 ("Potrebno pregledati")
            if ($r50[3] != 1 && $r50[3] != 4) {
                $bodova = $r50[4] + 1;
            } else {
                $bodova = -1;
            }
            // Dodajemo 1 na status kako bismo kasnije mogli znati da li
            // je vrijednost niza definisana ili ne.
            // undef ne radi :(
            // Slog sa najnovijim IDom se smatra mjerodavnim
            // Ostali su u bazi radi historije
            $zadace[$r50[0]][$r50[1]][$r50[2]] = $bodova;
        }
    }
    // -------------------------------
    // GLAVNA PETLJA ZA GRUPE
    foreach ($spisak_grupa as $grupa_id => $grupa_naziv) {
        /*	if ($j<$br_grupa) {
        		$r40 = mysql_fetch_row($q40);
        		$grupa_id = $r40[0];
        		$grupa_naziv = $r40[1];
        	} else {
        		$grupa_id = 0;
        		$grupa_naziv = "[Bez grupe]";
        	}*/
        // Ako je nulta grupa prazna (svi studenti rasporedjeni u grupe), preskacemo je
        if ($grupa_id == 0 && count($imeprezime) == 0) {
            continue;
        }
        // ----- GENERISANJE ZAGLAVLJA -----
        $zaglavlje1 = $zaglavlje2 = "";
        // Dva reda zaglavlja tabele
        // ZAGLAVLJE ZA PUNI ISPIS KOMPONENTI
        if ($skrati != 1) {
            // Ovdje dodati zaglavlje za eventualno nove komponente ...
            // Zaglavlje za prisustvo i spisak casova u ovoj grupi
            $prisustvo_id_array = array();
            $prisustvo_casovi = array();
            $prisustvo_mogucih = array();
            $q105 = myquery("SELECT k.id, k.gui_naziv, k.maxbodova FROM tippredmeta_komponenta as tpk, komponenta as k, akademska_godina_predmet as p WHERE p.predmet={$predmet} and p.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente=3 and p.akademska_godina={$ag} ORDER BY k.id");
            while ($r105 = mysql_fetch_row($q105)) {
                $prisustvo_id_array[] = $r105[0];
                $prisustvo_mogucih[$r105[0]] = $r105[2];
                if ($skrati != 1) {
                    $cas_id_array = array();
                    $casova = 0;
                    $prisustvo_zaglavlje = "";
                    if ($grupa_id != 0) {
                        $q110 = myquery("SELECT id,datum,vrijeme FROM cas where labgrupa={$grupa_id} and komponenta={$r105['0']} ORDER BY datum, vrijeme");
                    } else {
                        if ($id_virtualne_grupe > 0) {
                            $q110 = myquery("SELECT id,datum,vrijeme FROM cas where labgrupa={$id_virtualne_grupe} and komponenta={$r105['0']} ORDER BY datum, vrijeme");
                        } else {
                            continue;
                        }
                    }
                    // ako nema virtualne grupe - preskacemo
                    while ($r110 = mysql_fetch_row($q110)) {
                        $cas_id = $r110[0];
                        list($cas_godina, $cas_mjesec, $cas_dan) = explode("-", $r110[1]);
                        list($cas_sat, $cas_minuta, $cas_sekunda) = explode(":", $r110[2]);
                        $prisustvo_zaglavlje .= "<td align=\"center\">{$cas_dan}.{$cas_mjesec}<br/>{$cas_sat}:{$cas_minuta}";
                        $prisustvo_zaglavlje .= "</td>\n";
                        $cas_id_array[] = $cas_id;
                        $casova++;
                        $minw += 40;
                    }
                    $prisustvo_casovi[$r105[0]] = $cas_id_array;
                    //	$prisustvo_maxbodova[$r195[0]] = $r195[2];
                    //	$prisustvo_maxizostanaka[$r195[0]] = $r195[3];
                    //	$prisustvo_minbodova[$r195[0]] = $r195[4];
                    if ($prisustvo_zaglavlje == "") {
                        $prisustvo_zaglavlje = "<td>&nbsp;</td>";
                        $minw += 40;
                        $casova = 1;
                    }
                    $zaglavlje1 .= "<td align=\"center\" colspan=\"" . ($casova + 1) . "\">{$r105['1']}</td>\n";
                    $zaglavlje2 .= $prisustvo_zaglavlje;
                    $zaglavlje2 .= "<td>BOD.</td>\n";
                }
            }
            $zaglavlje1 .= $zadaca_zaglavlje1;
            $zaglavlje2 .= $zadaca_zaglavlje2;
        }
        // if ($skrati != 1)
        // Ostale komponente
        foreach ($ostale_komponente as $kid => $knaziv) {
            $zaglavlje1 .= "<td rowspan=\"2\" align=\"center\">{$knaziv}</td>\n";
        }
        ?>
<center><h2><?php 
        echo $grupa_naziv;
        ?>
</h2></center>
<table border="1" cellspacing="0" cellpadding="2">
	<tr><td rowspan="2" align="center">R.br.</td>
		<?php 
        if ($imenaopt) {
            ?>
<td rowspan="2" align="center">Prezime i ime</td><?php 
        }
        ?>
		<td rowspan="2" align="center">Br. indexa</td>
		<?php 
        echo $zaglavlje1;
        ?>
		<td align="center" <?php 
        if ($broj_ispita == 0) {
            ?>
 rowspan="2" <?php 
        } else {
            ?>
 colspan="<?php 
            echo $broj_ispita;
            ?>
" <?php 
        }
        ?>
>Ispiti</td>
		<td rowspan="2" align="center"><b>UKUPNO</b></td>
		<td rowspan="2" align="center">Konačna<br/>ocjena</td>
	</tr>
	<tr>
		<?php 
        echo $zaglavlje2;
        ?>
		<?php 
        echo $ispit_zaglavlje;
        ?>
	</tr>
	<?php 
        // ------ SPISAK STUDENATA ------
        $idovi = array();
        if ($grupa_id == 0) {
            $idovi = array_keys($imeprezime);
        } else {
            $q190 = myquery("select student from student_labgrupa where labgrupa={$grupa_id}");
            while ($r190 = mysql_fetch_row($q190)) {
                $idovi[] = $r190[0];
            }
        }
        // Petlja za ispis studenata
        $redni_broj = 0;
        foreach ($imeprezime as $stud_id => $stud_imepr) {
            if (!in_array($stud_id, $idovi)) {
                continue;
            }
            unset($imeprezime[$stud_id]);
            // Vise se nece javljati
            $redni_broj++;
            ?>
	<tr>
		<td><?php 
            echo $redni_broj;
            ?>
.</td>
		<?php 
            if ($imenaopt) {
                ?>
<td><?php 
                echo $stud_imepr;
                ?>
</td><?php 
            }
            ?>
		<td><?php 
            echo $brindexa[$stud_id];
            ?>
</td>
		<?php 
            $ispis = "";
            $bodova = 0;
            // Zbir bodova koje je student ostvario
            // PUNI ISPIS MODULA PRISUSTVO
            if ($skrati != 1) {
                foreach ($prisustvo_id_array as $pid) {
                    $cas_id_array = $prisustvo_casovi[$pid];
                    $odsustvo = 0;
                    if (count($cas_id_array) == 0) {
                        $ispis .= "<td>&nbsp;</td>\n";
                    } else {
                        foreach ($cas_id_array as $cid) {
                            $q200 = mysql_query("select prisutan,plus_minus from prisustvo where student={$stud_id} and cas={$cid}");
                            if (mysql_num_rows($q200) > 0) {
                                if (mysql_result($q200, 0, 0) == 1) {
                                    $ispis .= "<td bgcolor=\"#CCFFCC\" align=\"center\">DA</td>\n";
                                } else {
                                    $ispis .= "<td bgcolor=\"#FFCCCC\" align=\"center\">NE</td>\n";
                                    $odsustvo++;
                                }
                                //$ocj = mysql_result($r4,0,1);
                            } else {
                                $ispis .= "<td bgcolor=\"#FFFFCC\"> / </td>\n";
                            }
                        }
                    }
                    $q210 = myquery("select kb.bodovi from komponentebodovi as kb, ponudakursa as pk where kb.student={$stud_id} and kb.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} and kb.komponenta={$pid}");
                    if (mysql_num_rows($q210) == 0) {
                        $pbodovi = 0;
                    } else {
                        $pbodovi = mysql_result($q210, 0, 0);
                    }
                    $ispis .= "<td>{$pbodovi}</td>\n";
                    $bodova += $pbodovi;
                }
            }
            // PUNI ISPIS MODULA ZADACE
            if ($skrati != 1) {
                $zbodova = 0;
                foreach ($zad_id_array as $n => $vid) {
                    //print "VID: $vid ".$zad_brz_array[$vid]."</br>";
                    $ocjena = 0;
                    $ima = 0;
                    // Da li je poslao ijedan zadatak?
                    $ispisati = 1;
                    // Da li ima nepregledanih zadataka?
                    for ($i = 1; $i <= $zad_brz_array[$vid]; $i++) {
                        //print "OUT: $vid $i $stud_id ".$zadace[$vid][$i][$stud_id]."<br/>";
                        $bzad = $zadace[$vid][$i][$stud_id];
                        if ($bzad > 0) {
                            // Svi bodovi su uvećani za 1
                            $ocjena += $bzad - 1;
                            $ima = 1;
                        }
                        // Ispisujemo samo ako su svi zadaci pregledani
                        if ($bzad == -1) {
                            $ispisati = 0;
                        }
                    }
                    if ($ima == 0 || $ispisati == 0) {
                        $ispis .= "<td> / </td>\n";
                    } else {
                        $ispis .= "<td> {$ocjena} </td>\n";
                        $zbodova = $zbodova + $ocjena;
                    }
                }
                if (count($zad_id_array) == 0 && count($komponente_zadace) != 0) {
                    $ispis .= "<td>&nbsp;</td>";
                }
                foreach ($komponente_zadace as $kz) {
                    $q220 = myquery("select kb.bodovi from komponentebodovi as kb, ponudakursa as pk where kb.student={$stud_id} and kb.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} and kb.komponenta={$kz}");
                    $zbodova = 0;
                    while ($r220 = mysql_fetch_row($q220)) {
                        $zbodova += $r220[0];
                    }
                    $bodova += $zbodova;
                }
            }
            // Ovdje dodati puni ispis neke eventualno nove komponente
            // OSTALE KOMPONENTE
            foreach ($ostale_komponente as $kid => $knaziv) {
                $q230 = myquery("select kb.bodovi from komponentebodovi as kb, ponudakursa as pk where kb.student={$stud_id} and kb.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} and kb.komponenta={$kid}");
                $obodova = 0;
                if (mysql_num_rows($q230) > 0) {
                    $obodova = mysql_result($q230, 0, 0);
                }
                $ispis .= "<td>{$obodova}</td>";
                $bodova += $obodova;
            }
            // ISPITI
            if ($broj_ispita == 0) {
                $ispis .= "<td>&nbsp;</td>";
            }
            $komponente = $kmax = $kispis = array();
            foreach ($ispit_id_array as $ispit) {
                $k = $ispit_komponenta[$ispit];
                $q230 = myquery("select ocjena from ispitocjene where ispit={$ispit} and student={$stud_id}");
                if (mysql_num_rows($q230) > 0) {
                    $ocjena = mysql_result($q230, 0, 0);
                    if ($razdvoji_ispite == 1) {
                        $ispis .= "<td align=\"center\">{$ocjena}</td>\n";
                    }
                    if (!in_array($k, $komponente) || $ocjena > $kmax[$k]) {
                        $kmax[$k] = $ocjena;
                        $kispis[$k] = "<td align=\"center\">{$ocjena}</td>\n";
                    }
                } else {
                    if ($razdvoji_ispite == 1) {
                        $ispis .= "<td align=\"center\">/</td>\n";
                    }
                    if ($kispis[$k] == "") {
                        $kispis[$k] = "<td align=\"center\">/</td>\n";
                    }
                }
                if (!in_array($k, $komponente)) {
                    $komponente[] = $k;
                }
            }
            // Prvo trazimo integralne ispite
            foreach ($komponente as $k) {
                if ($komponenta_tip[$k] == 2) {
                    // Koje parcijalne ispite obuhvata integralni
                    $dijelovi = explode("+", $komponenta_opcija[$k]);
                    // Racunamo zbir
                    $zbir = 0;
                    $pao = 0;
                    foreach ($dijelovi as $dio) {
                        $zbir += $kmax[$dio];
                        if ($kmax[$dio] < $komponenta_prolaz[$dio]) {
                            $pao = 1;
                        }
                    }
                    // Eliminisemo parcijalne obuhvacene integralnim
                    if ($kmax[$k] > $zbir || $pao == 1 && $kmax[$k] >= $komponenta_prolaz[$k]) {
                        $bodova += $kmax[$k];
                        foreach ($dijelovi as $dio) {
                            $kmax[$dio] = 0;
                            $kispis[$dio] = "";
                        }
                        $kispis[$k] = "<td align=\"center\" colspan=\"" . count($dijelovi) . "\">" . $kmax[$k] . "</td>\n";
                    } else {
                        $kispis[$k] = "";
                    }
                }
            }
            // Sabiremo preostale parcijalne ispite na sumu bodova
            foreach ($komponente as $k) {
                if ($komponenta_tip[$k] != 2) {
                    $bodova += $kmax[$k];
                }
                if ($razdvoji_ispite != 1) {
                    $ispis .= $kispis[$k];
                }
            }
            // STATISTIKE
            $topscore[$stud_id] = $bodova;
            print $ispis;
            print "<td align=\"center\">{$bodova} (" . procenat($bodova, $mogucih_bodova) . ")</td>\n";
            // Konacna ocjena
            $q508 = myquery("select ocjena from konacna_ocjena where student={$stud_id} and predmet={$predmet} and akademska_godina={$ag}");
            if (mysql_num_rows($q508) > 0) {
                print "<td>" . mysql_result($q508, 0, 0) . "</td>\n";
            } else {
                print "<td>/</td>\n";
            }
            print "</tr>\n";
        }
        print "</table><p>&nbsp;</p>";
    }
    // while ($r40...
}
示例#2
0
function izvjestaj_anketa_sumarno()
{
    ?>
<p>Univerzitet u Sarajevu<br/>
	Elektrotehnički fakultet Sarajevo</p>
	<p>Datum i vrijeme izvještaja: <?php 
    echo date("d. m. Y. H:i");
    ?>
</p>
	<?php 
    $anketa = intval($_REQUEST['anketa']);
    $q10 = myquery("SELECT UNIX_TIMESTAMP(aa.datum_otvaranja), UNIX_TIMESTAMP(aa.datum_zatvaranja), aa.naziv, ag.naziv, ag.id, ap.semestar, ap.predmet \r\n\t\tFROM anketa_anketa as aa, akademska_godina as ag, anketa_predmet as ap \r\n\t\tWHERE aa.id={$anketa} and ap.anketa={$anketa} and aa.akademska_godina=ag.id");
    if (mysql_num_rows($q10) < 1) {
        biguglyerror("Nepostojeća anketa!");
        zamgerlog("Pristup nepostojećoj anketi {$anketa}", 3);
        zamgerlog2("pristup nepostojećoj anketi", $anketa);
        return;
    }
    $datum_otvaranja = mysql_result($q10, 0, 0);
    $datum_zatvaranja = mysql_result($q10, 0, 1);
    $naziv_ankete = mysql_result($q10, 0, 2);
    $naziv_ag = mysql_result($q10, 0, 3);
    $ag = mysql_result($q10, 0, 4);
    $semestar = mysql_result($q10, 0, 5);
    $anketa_predmet = mysql_result($q10, 0, 6);
    // Ova vrsta izvještaja nema smisla za ankete koje su samo za jedan predmet
    // Stoga ćemo prikazati sve predmete u datoj akademskoj godini i semestru
    if ($anketa_predmet != 0) {
        niceerror("Ova anketa je vezana samo za jedan predmet");
        print "Nema smisla prikazivati sumarni izvještaj za takvu anketu.";
        return;
    }
    if (!isset($_REQUEST['tip']) || $_REQUEST['tip'] == "izlaznost") {
        ?>
		<h2>Izlaznost na anketu <?php 
        echo $naziv_ankete;
        ?>
 (godina <?php 
        echo $naziv_ag;
        ?>
)</h2>
		<?php 
    } else {
        if ($_REQUEST['tip'] == "sveukupna") {
            ?>
		<h2>Sveukupna ocjena predmeta, anketa <?php 
            echo $naziv_ankete;
            ?>
 (godina <?php 
            echo $naziv_ag;
            ?>
)</h2>
		<?php 
        }
    }
    if ($datum_otvaranja > time()) {
        print "<p><font color=\"red\">Anketa još uvijek nije održana! Datum otvaranja je u budućnosti.</font></p>\n";
    } else {
        if ($datum_zatvaranja > time()) {
            print "<p><font color=\"red\">Anketa je još uvijek otvorena! Datum zatvaranja je u budućnosti.</font></p>\n";
        }
    }
    // Cachiramo broj studenata po predmetu u nizove
    $broj_studenata = array();
    $q15 = myquery("SELECT pk.predmet, count(*) FROM student_predmet as sp, ponudakursa as pk WHERE sp.predmet=pk.id and pk.akademska_godina={$ag} and pk.semestar mod 2={$semestar} GROUP BY pk.id");
    while ($r15 = mysql_fetch_row($q15)) {
        $broj_studenata[$r15[0]] += $r15[1];
    }
    if (!isset($_REQUEST['tip']) || $_REQUEST['tip'] == "izlaznost") {
        // Glavna tabela
        ?>
	<table cellspacing="0" border="1">
	<tr><th>Predmet</th><th>Uk. studenata</th><th>Nije popunilo anketu</th><th>Poništilo anketu</th><th>Učestvovalo u anketi</th></tr>
	<?php 
        $predmet_bio = array();
        $stari_studij = $stari_semestar = 0;
        $q20 = myquery("SELECT p.id, p.naziv, pk.studij, pk.semestar, s.naziv, p.institucija, s.institucija\r\n\t\tFROM predmet as p, ponudakursa as pk, studij as s\r\n\t\tWHERE pk.akademska_godina={$ag} and pk.semestar mod 2={$semestar} and pk.predmet=p.id and pk.studij=s.id\r\n\t\tand s.id<=10 " . "\r\n\t\tORDER BY s.tipstudija, s.naziv, pk.semestar, p.naziv");
        while ($r20 = mysql_fetch_row($q20)) {
            // Svrstavamo predmete pod njihov odsjek
            if ($r20[5] != $r20[6] && $r20[5] != 1) {
                continue;
            }
            // Da li je predmet bio?
            $predmet = $r20[0];
            if (in_array($predmet, $predmet_bio)) {
                continue;
            }
            array_push($predmet_bio, $predmet);
            // Preskačemo predmete bez studenata
            if ($broj_studenata[$predmet] == 0) {
                continue;
            }
            // Da li je novi studij
            $naziv_predmeta = $r20[1];
            $studij = $r20[2];
            $semestar = $r20[3];
            if ($studij != $stari_studij || $semestar != $stari_semestar) {
                $naziv_studija = $r20[4];
                print "<tr><td colspan='5'><b>{$naziv_studija}, {$semestar} semestar</b></td></tr>\n";
                $stari_studij = $studij;
                $stari_semestar = $semestar;
            }
            print "<tr><td>{$naziv_predmeta}</td>\n";
            /*$q30 = myquery("select count(*) from student_predmet as sp, ponudakursa as pk where sp.predmet=pk.id and pk.predmet=$r20[0] and pk.akademska_godina=$r20[4]");
            		$broj_studenata = mysql_result($q30,0,0);*/
            $bs = $broj_studenata[$predmet];
            // Kraće pisanje
            print "<td>{$bs}</td>\n";
            $q40 = myquery("select id from anketa_rezultat where anketa={$anketa} and zavrsena='Y' and predmet={$r20['0']}");
            $broj_neuradjenih = $bs - mysql_num_rows($q40);
            print "<td>{$broj_neuradjenih} (" . procenat($broj_neuradjenih, $bs) . ")</td>\n";
            $ponistenih = $uradjenih = 0;
            while ($r40 = mysql_fetch_row($q40)) {
                $q50 = myquery("select count(*) from anketa_odgovor_rank where rezultat={$r40['0']}");
                // TODO: dodati i ostale tipove pitanja
                if (mysql_result($q50, 0, 0) == 0) {
                    $ponistenih++;
                } else {
                    $uradjenih++;
                }
            }
            print "<td>{$ponistenih} (" . procenat($ponistenih, $bs) . ")</td>\n";
            print "<td>{$uradjenih} (" . procenat($uradjenih, $bs) . ")</td>\n";
            print "</tr>\n";
            $suma_bs += $bs;
            $suma_neuradjenih += $broj_neuradjenih;
            $suma_ponistenih += $ponistenih;
            $suma_uradjenih += $uradjenih;
        }
        print "<tr><td colspan='5'><b>UKUPNO:</b></td></tr>\n";
        print "<tr><td>&nbsp;</td><td>{$suma_bs}</td><td>{$suma_neuradjenih} (" . procenat($suma_neuradjenih, $suma_bs) . ")</td><td>{$suma_ponistenih} (" . procenat($suma_ponistenih, $suma_bs) . ")</td><td>{$suma_uradjenih} (" . procenat($suma_uradjenih, $suma_bs) . ")</td></tr>\n";
        print "</table>\n";
        return;
    }
    if ($_REQUEST['tip'] == "sveukupna") {
        // Anketno pitanje "sveukupna ocjena predmeta"
        $q17 = myquery("SELECT p.id, p.tekst FROM anketa_pitanje as p,anketa_tip_pitanja as t WHERE p.tip_pitanja = t.id and p.anketa={$anketa} and p.tip_pitanja=1 order by p.id");
        $the_pitanje = 0;
        while ($r17 = mysql_fetch_row($q17)) {
            if (strstr($r17[1], "ocjena predmeta")) {
                $the_pitanje = $r17[0];
            }
        }
        if ($the_pitanje == 0) {
            biguglyerror("Nije pronađeno anketno pitanje 'sveukupna ocjena predmeta'");
            return;
        }
        // Glavna tabela
        ?>
	<table cellspacing="0" border="1">
	<tr><th>Predmet</th><th>Sveukupna ocjena</th><th>Odgovora</th></tr>
	<?php 
        $predmet_bio = array();
        $stari_studij = $stari_semestar = 0;
        $q20 = myquery("SELECT p.id, p.naziv, pk.studij, pk.semestar, s.naziv, p.institucija, s.institucija\r\n\t\tFROM predmet as p, ponudakursa as pk, studij as s\r\n\t\tWHERE pk.akademska_godina={$ag} and pk.semestar mod 2={$semestar} and pk.predmet=p.id and pk.studij=s.id\r\n\t\tand s.id<=10 " . "\r\n\t\tORDER BY s.tipstudija, s.naziv, pk.semestar, p.naziv");
        while ($r20 = mysql_fetch_row($q20)) {
            // Svrstavamo predmete pod njihov odsjek
            if ($r20[5] != $r20[6] && $r20[5] != 1) {
                continue;
            }
            // Da li je predmet bio?
            $predmet = $r20[0];
            if (in_array($predmet, $predmet_bio)) {
                continue;
            }
            array_push($predmet_bio, $predmet);
            // Preskačemo predmete bez studenata
            if ($broj_studenata[$predmet] == 0) {
                continue;
            }
            // Da li je novi studij
            $naziv_predmeta = $r20[1];
            $studij = $r20[2];
            $semestar = $r20[3];
            if ($studij != $stari_studij || $semestar != $stari_semestar) {
                $naziv_studija = $r20[4];
                print "<tr><td colspan='3'><b>{$naziv_studija}, {$semestar} semestar</b></td></tr>\n";
                $stari_studij = $studij;
                $stari_semestar = $semestar;
            }
            print "<tr><td>{$naziv_predmeta}</td>\n";
            $bs = $broj_studenata[$predmet];
            // Kraće pisanje
            $q40 = myquery("select id from anketa_rezultat where anketa={$anketa} and zavrsena='Y' and predmet={$r20['0']}");
            $suma_ocjena = $br_ocjena = 0;
            while ($r40 = mysql_fetch_row($q40)) {
                $q50 = myquery("select izbor_id from anketa_odgovor_rank where rezultat={$r40['0']} and pitanje={$the_pitanje}");
                if (mysql_num_rows($q50) > 0) {
                    $suma_ocjena += mysql_result($q50, 0, 0);
                    $br_ocjena++;
                }
            }
            if ($br_ocjena > 0) {
                $prosjek = round($suma_ocjena / $br_ocjena, 2);
                $suma_suma_ocjena += $suma_ocjena / $br_ocjena;
            } else {
                $prosjek = 0;
            }
            print "<td>{$prosjek}</td><td>{$br_ocjena} (" . procenat($br_ocjena, $bs) . ")</td>\n";
            print "</tr>\n";
            $suma_uradjenih += $br_ocjena;
            $suma_bs += $bs;
            $br_predmeta++;
        }
        print "<tr><td colspan='3'><b>UKUPNO:</b></td></tr>\n";
        print "<tr><td>&nbsp;</td><td>" . round($suma_suma_ocjena / $br_predmeta, 2) . "</td><td>{$suma_uradjenih} (" . procenat($suma_uradjenih, $suma_bs) . ")</td></tr>\n";
        print "</table>\n";
        return;
    }
    // if ($_REQUEST['tip'] == "sveukupna")
    // naziv predmeta
    $q10 = myquery("select p.naziv,pk.akademska_godina,p.id from predmet as p, ponudakursa as pk where pk.predmet=p.id and p.id={$predmet} and pk.akademska_godina={$ag}; ");
    $naziv_predmeta = mysql_result($q10, 0, 0);
    // provjera da li je dati profesor zadužen na predmetu za koji želi pogledat izvještaj
    if (!$user_siteadmin && !$user_studentska) {
        $q20 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}");
        if (mysql_num_rows($q20) == 0) {
            zamgerlog("nastavnik/izvjestaj_anketa privilegije", 3);
            zamgerlog2("privilegije");
            biguglyerror("Nemate pravo pregledati ovaj izvještaj!");
            return;
        }
    }
    // naziv akademske godine
    $q30 = myquery("select naziv from akademska_godina where id={$ag}");
    $naziv_ak_god = mysql_result($q30, 0, 0);
    // da li postoji anketa?
    if ($anketa > 0) {
        $q40 = myquery("select id, aktivna from anketa_anketa where akademska_godina= {$ag} and id={$anketa}");
    } else {
        $q40 = myquery("select aa.id, aa.aktivna from anketa_anketa as aa where aa.akademska_godina={$ag} and (select count(*) from anketa_rezultat as ar where ar.anketa=aa.id and ar.predmet={$predmet})>0 order by id desc");
        // prikaži anketu koju je neko popunjavao
        if (mysql_num_rows($q40) < 1) {
            $q40 = myquery("select id, aktivna from anketa_anketa where akademska_godina={$ag}");
        }
    }
    if (mysql_num_rows($q40) == 0) {
        biguglyerror("Za datu akademsku godinu nije kreirana anketa!");
        return;
    }
    $anketa = mysql_result($q40, 0, 0);
    $aktivna = mysql_result($q40, 0, 1);
    if (!$user_siteadmin && !$user_studentska && $aktivna == 1) {
        ?>
		<h2>Pristup rezultatima ankete nije moguć</h2>
		<p>Odlukom uprave <?php 
        echo $conf_skr_naziv_institucije_genitiv;
        ?>
, nastavni ansambl ne može pristupiti rezultatima ankete do isteka određenog roka. Za dodatne informacije predlažemo da kontaktirate službe <?php 
        echo $conf_skr_naziv_institucije_genitiv;
        ?>
</p>
		<?php 
        return;
    }
    if ($_REQUEST['komentar'] == "da") {
        // ---------------------------------------------   IZVJESTAJ ZA KOMENTARE ---------------------------------------------
        $limit = 5;
        // broj kometara prikazanih po stranici
        $offset = intval($_REQUEST["offset"]);
        $q50 = myquery("select count(*) from anketa_rezultat where predmet={$predmet} and anketa = {$anketa} AND zavrsena='Y'");
        $broj_anketa = mysql_result($q50, 0, 0);
        ?>
		<center>
		<h2>Prikaz svih komentara za predmet <?php 
        echo $naziv_predmeta;
        ?>
 za akademsku godinu <?php 
        echo $naziv_ak_god;
        ?>
</h2>
		
		<h3>Broj studenata koji su pristupili anketi je: <?php 
        echo $broj_anketa;
        ?>
</h3>
		<?php 
        // pokupimo sve komentare za dati predmet
        $q60 = myquery("SELECT count(*) FROM anketa_odgovor_text WHERE odgovor<>'' and rezultat IN (SELECT id FROM anketa_rezultat WHERE predmet={$predmet} and anketa={$anketa} AND zavrsena='Y')");
        $broj_odgovora = mysql_result($q60, 0, 0);
        $q61 = myquery(" SELECT odgovor FROM anketa_odgovor_text WHERE odgovor<>'' and rezultat IN (SELECT id FROM anketa_rezultat WHERE predmet ={$predmet} and anketa={$anketa}) limit {$offset}, {$limit}");
        if ($broj_odgovora == 0) {
            print "Nema rezultata!";
        } else {
            if ($broj_odgovora > $limit) {
                $donja_granica = $offset + 1;
                $gornja_granica = $offset + 5;
                if ($gornja_granica > $broj_odgovora) {
                    $gornja_granica = $broj_odgovora;
                }
                print "Prikazujem rezultate {$donja_granica}-{$gornja_granica} od {$broj_odgovora}. Stranica: ";
                for ($i = 0; $i < $broj_odgovora; $i += $limit) {
                    $br = intval($i / $limit) + 1;
                    if ($i == $offset) {
                        print "<b>{$br}</b> ";
                    } else {
                        print "<a href=\"?sta=izvjestaj/anketa&predmet={$predmet}&ag={$ag}&komentar=da&offset={$i}\">{$br}</a> ";
                    }
                }
                print "<br/>";
            }
        }
        ?>
		<table width="650px"  >
			 <tr>
				<td bgcolor="#6699CC" height="10">   </td>
			</tr>
		<?php 
        $i = 0;
        while ($r61 = mysql_fetch_row($q61)) {
            $komentar = str_replace("\n", "<br/>\n", $r61[0]);
            ?>
<tr>
				<td><hr/></td>
			</tr>
			<tr>
				<td><?php 
            echo $komentar;
            ?>
</td>
			</tr>
			<?php 
            $i++;
        }
        ?>
		
		</table> 
		</center>
		<?php 
    } else {
        if ($_REQUEST['rank'] == "da") {
            print "<center>";
            print "<h2>Statistika za predmet {$naziv_predmeta} za akademsku godinu {$naziv_ak_god}</h2>\n";
            $q100 = myquery("select count(*) from anketa_rezultat where predmet={$predmet} and anketa = {$anketa} AND zavrsena='Y'");
            $broj_anketa = mysql_result($q100, 0, 0);
            print "<h3> Broj studenata koji su pristupili anketi je : {$broj_anketa} </h3>";
            // broj rank pitanja
            $q110 = myquery("SELECT id FROM anketa_pitanje WHERE anketa ={$anketa} and tip_pitanja =1");
            $i = 0;
            while ($r110 = mysql_fetch_row($q110)) {
                $j = $i + 1;
                $q120 = myquery("SELECT avg(izbor_id), count(izbor_id) FROM anketa_odgovor_rank WHERE rezultat IN (SELECT id FROM anketa_rezultat WHERE predmet={$predmet} and anketa={$anketa} AND zavrsena='Y') AND pitanje = {$r110['0']}");
                $prosjek[$i] = mysql_result($q120, 0, 0);
                $broj_odgovora[$i] = mysql_result($q120, 0, 1);
                $i++;
            }
            // kupimo pitanja
            $q130 = myquery("SELECT p.id, p.tekst,t.tip FROM anketa_pitanje p,anketa_tip_pitanja t WHERE p.tip_pitanja = t.id and p.anketa ={$anketa} and p.tip_pitanja=1");
            ?>
		
		<table width="800px">
			<tr> 
				<td bgcolor="#6699CC">&nbsp;&nbsp;Pitanje</td><td bgcolor="#6699CC" width='350px'>&nbsp;&nbsp;Prosjek odgovora</td>
			</tr>
		
			<tr>
				<td colspan="2"><hr/></td>
			</tr>
			<tr>
				 <td>&nbsp;</td><td bgcolor="#FF0000" width='350px'>&nbsp;MAX </td>
			</tr>
		<?php 
            $i = 0;
            while ($r130 = mysql_fetch_row($q130)) {
                $tekst = $r130[1];
                $procenat = $prosjek[$i] / 5 * 100;
                ?>
<tr height='35'>
				<td><?php 
                echo $i + 1;
                ?>
. <?php 
                echo $tekst;
                ?>
<br><font color="#999999"><small>(<?php 
                echo $broj_odgovora[$i];
                ?>
 odgovora)</small></font></td>
				<td>
					<table border='0' width='350px'>
					<tr> 
	        				<td height='30' width='<?php 
                echo $procenat;
                ?>
%' bgcolor="#CCCCFF"> &nbsp;<?php 
                echo round($prosjek[$i], 2);
                ?>
</td>
						<td width='<?php 
                echo 100 - $procenat;
                ?>
%'> </td>
        				</tr></table> 
				</td>
			</tr>
			<?php 
                $i++;
            }
            $prosjek = array_sum($prosjek) / count($prosjek);
            // PITANJA TIPA IZBOR
            //kupimo pitanja
            $q200 = myquery("SELECT p.id, p.tekst,t.tip FROM anketa_pitanje p,anketa_tip_pitanja t WHERE p.tip_pitanja = t.id and p.anketa ={$anketa} and (p.tip_pitanja=3 or p.tip_pitanja=4)");
            if (mysql_num_rows($q200) > 0) {
                ?>
		
		<table width="800px"  >
			<tr> 
				<td bgcolor="#6699CC"> Pitanje </td> <td bgcolor="#6699CC" width='350px'> Odgovori </td>
			</tr>
		   
			<tr> 
				<td colspan="2"> <hr/>  </td>
			</tr>
			<tr > 
				 <td  > </td> <td bgcolor="#FF0000" width='350px'> &nbsp;MAX </td>
			</tr>
		<?php 
                $i = 0;
                while ($r200 = mysql_fetch_row($q200)) {
                    $id_pitanja = $r200[0];
                    $tekst = $r200[1];
                    $ispis_odgovori = "";
                    $q210 = myquery("select ip.id, ip.izbor, ip.dopisani_odgovor, count(oi.rezultat) from anketa_izbori_pitanja as ip, anketa_odgovor_izbori as oi where ip.pitanje={$id_pitanja} and oi.pitanje={$id_pitanja} and oi.izbor_id=ip.id group by ip.id");
                    while ($r210 = mysql_fetch_row($q210)) {
                        $ispis_odgovori .= $r210[1] . " - " . $r210[3] . " (" . round($r210[3] / $broj_anketa, 4) * 100 . "%)<br>\n";
                        if ($r210[2] == 1) {
                            $q220 = myquery("select odgovor from anketa_odgovor_dopisani where pitanje={$id_pitanja}");
                            if (mysql_num_rows($q220) == 0) {
                                continue;
                            }
                            $ispis_odgovori .= "<font color=\"#BBBBBB\">";
                            while ($r220 = mysql_fetch_row($q220)) {
                                $ispis_odgovori .= "&quot;" . $r220[0] . "&quot; ";
                            }
                            $ispis_odgovori .= "</font><br>\n";
                        }
                    }
                    $q230 = myquery("select count(distinct rezultat) from anketa_odgovor_izbori where pitanje={$id_pitanja}");
                    $q240 = myquery("select count(*) from anketa_odgovor_izbori where pitanje={$id_pitanja} and izbor_id=0");
                    $neodg = $broj_anketa - mysql_result($q230, 0, 0) + mysql_result($q240, 0, 0);
                    $ispis_odgovori .= "<i>neodgovoreno: {$neodg} (" . round($neodg / $broj_anketa, 4) * 100 . "%)</i>";
                    ?>
<tr height='35'>
				<td><?php 
                    echo $i + 1;
                    ?>
. <?php 
                    echo $tekst;
                    ?>
</td>
				<td width="100"><?php 
                    echo $ispis_odgovori;
                    ?>
</td>
			</tr>
			<tr><td colspan="2"><hr></td></tr>
			<?php 
                    $i++;
                }
            }
            // mysql_num_rows($result202)
            ?>
		<tr> 
				<td colspan="2"> <hr/>  </td>
			</tr>
			  <!--tr > 
				 <td align="right"> Prosjek predmeta : </td> <td  width='350px'> &nbsp;<strong><?php 
            echo round($prosjek, 2);
            ?>
 </strong> </td>
			 </tr-->
		</table> 
		</center>
		<?php 
        }
    }
}
示例#3
0
文件: ispit.php 项目: msehalic/zamger
function izvjestaj_ispit()
{
    global $userid, $user_nastavnik, $user_studentska, $user_siteadmin;
    ?>
<p>Univerzitet u Sarajevu<br/>
Elektrotehnički fakultet Sarajevo</p>
<p>Datum i vrijeme izvještaja: <?php 
    echo date("d. m. Y. H:i");
    ?>
</p>
<?php 
    // Parametar
    $ispit = intval($_REQUEST['ispit']);
    if ($_REQUEST['ispit'] == "svi") {
        // Privremeno vrsim redirekciju na izvjestaj/statistika_predmeta
        $ponudakursa = intval($_REQUEST['predmet']);
        $qtmp = myquery("select predmet, akademska_godina from ponudakursa where id={$ponudakursa}");
        $predmet = mysql_result($qtmp, 0, 0);
        $ag = mysql_result($qtmp, 0, 1);
        ?>
	<script language="JavaScript">
	location.href='?sta=izvjestaj/statistika_predmeta&predmet=<?php 
        echo $predmet;
        ?>
&ag=<?php 
        echo $ag;
        ?>
';
	</script>
	<?php 
        return;
    }
    // Elementarna provjera privilegija
    /*if (!$user_nastavnik && !$user_studentska && !$user_siteadmin) {
    	biguglyerror("Nemate permisije za pristup ovom izvještaju");
    	zamgerlog ("pristup izvjestaju a nije NBA",3); // 3 = error
    	return;
    }*/
    // Upit za ispit
    $q10 = myquery("select UNIX_TIMESTAMP(i.datum), k.gui_naziv, k.maxbodova, k.prolaz, i.predmet, i.akademska_godina from ispit as i, komponenta as k where i.id={$ispit} and i.komponenta=k.id");
    if (mysql_num_rows($q10) < 1) {
        biguglyerror("Nepoznat ispit!");
        zamgerlog("nepoznat ispit {$ispit}", 3);
        return;
    }
    $finidatum = date("d. m. Y.", mysql_result($q10, 0, 0));
    $naziv = mysql_result($q10, 0, 1);
    $maxbodova = mysql_result($q10, 0, 2);
    $prolaz = mysql_result($q10, 0, 3);
    $predmet = mysql_result($q10, 0, 4);
    $ag = mysql_result($q10, 0, 5);
    // Dodatna provjera privilegija
    if (!$user_studentska && !$user_siteadmin) {
        $q20 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}");
        if (mysql_num_rows($q20) < 1) {
            biguglyerror("Nemate permisije za pristup ovom izvještaju");
            zamgerlog("nije admin predmeta pp{$predmet} godina ag{$ag}", 3);
            // 3 = error
            return;
        }
    }
    // Naziv predmeta, akademska godina
    $q21 = myquery("select naziv from predmet where id={$predmet}");
    $q22 = myquery("select naziv from akademska_godina where id={$ag}");
    ?>
	<p>&nbsp;</p>
	<h1><?php 
    echo mysql_result($q21, 0, 0);
    ?>
 <?php 
    echo mysql_result($q22, 0, 0);
    ?>
</h1>
	<h3><?php 
    echo $naziv;
    ?>
, <?php 
    echo $finidatum;
    ?>
</h3>
<?php 
    // Opste statistike - pojedinacni ispit
    $q200 = myquery("select count(*) from ispitocjene where ispit={$ispit}");
    $ukupno_izaslo = mysql_result($q200, 0, 0);
    $q210 = myquery("select count(*) from ispitocjene where ispit={$ispit} and ocjena>={$prolaz}");
    $polozilo = mysql_result($q210, 0, 0);
    $q220 = myquery("select count(*) from student_predmet as sp, ponudakursa as pk where sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}");
    $slusa_predmet = mysql_result($q220, 0, 0);
    ?>
<p>Ukupno izašlo studenata: <b><?php 
    echo $ukupno_izaslo;
    ?>
</b><br/>
Položilo: <b><?php 
    echo $polozilo;
    ?>
</b><br/>
Prolaznost: <b><?php 
    echo procenat($polozilo, $ukupno_izaslo);
    ?>
</b></p>

<p>Od studenata koji slušaju predmet, nije izašlo: <b><?php 
    echo $slusa_predmet - $ukupno_izaslo;
    ?>
</b></p><?php 
    // Po broju bodova
    if ($maxbodova == 20) {
        $rezolucija = "0.5";
    } else {
        $rezolucija = "1";
    }
    print "<p>Distribucija po broju bodova:<br/>(Svaki stupac predstavlja broj studenata sa određenim brojem bodova. Rezolucija je {$rezolucija} bodova)</p>";
    // Odredjivanje max. broja studenata po koloni radi skaliranja grafa
    $max = 0;
    for ($i = 0; $i <= $maxbodova; $i += $rezolucija) {
        $q300 = myquery("select COUNT( * ) FROM ispitocjene WHERE ispit={$ispit} and ocjena>={$i} and ocjena<" . ($i + $rezolucija));
        $studenata = mysql_result($q300, 0, 0);
        if ($studenata > $max) {
            $max = $studenata;
        }
    }
    if ($max > 0) {
        $koef = 80 / $max;
    } else {
        $koef = 80;
    }
    ?>
<table border="0" cellspacing="0" cellpadding="0"><tr><?php 
    for ($i = 0; $i <= $maxbodova; $i += $rezolucija) {
        $q310 = myquery("select COUNT( * ) FROM ispitocjene WHERE ispit={$ispit} and ocjena>={$i} and ocjena<" . ($i + $rezolucija));
        $height = intval(mysql_result($q310, 0, 0) * $koef);
        ?>
<td width="10">
		<table width="10" border="0" cellspacing="0" cellpadding="0">
			<tr><td>
				<img src="images/fnord.gif" width="1" height="<?php 
        echo 100 - $height;
        ?>
">
			</td></tr><tr><td bgcolor="#FF0000">
				<img src="images/fnord.gif" width="1" height="<?php 
        echo $height;
        ?>
">
			</td></tr>
		</table>
	</td><td>&nbsp;</td><?php 
    }
    ?>
</tr></table>
<?php 
    // Prolaznost po grupama
    $q315 = myquery("select count(*) from labgrupa where predmet={$predmet} and akademska_godina={$ag} and virtualna=0");
    if (mysql_result($q315, 0, 0) < 2) {
        // Nema grupa, preskacemo ostatak izvjestaja
        return;
    }
    $ukupno = array();
    $polozilo = array();
    $prosjek = array();
    $grupe = array();
    $maxprol = 0;
    $maxprosj = 0;
    $q320 = myquery("select l.id,io.ocjena,l.naziv FROM ispitocjene as io, student_labgrupa as sl, labgrupa as l, ispit as i WHERE io.ispit={$ispit} and io.student=sl.student and sl.labgrupa=l.id and i.id=io.ispit and l.predmet=i.predmet and l.akademska_godina=i.akademska_godina and l.virtualna=0 order by l.id");
    while ($r320 = mysql_fetch_row($q320)) {
        $grupe[$r320[0]] = $r320[2];
        // Nazivi grupa
        $ukupno[$r320[0]]++;
        if ($r320[1] >= $prolaz) {
            $polozilo[$r320[0]]++;
        }
        $prosjek[$r320[0]] = ($prosjek[$r320[0]] * ($ukupno[$r320[0]] - 1) + $r320[1]) / $ukupno[$r320[0]];
        if ($prosjek[$r320[0]] > $maxprosj) {
            $maxprosj = $prosjek[$r320[0]];
        }
        $prolaznost = $polozilo[$r320[0]] / $ukupno[$r320[0]];
        if ($prolaznost > $maxprol) {
            $maxprol = $prolaznost;
        }
    }
    print "<p>Prolaznost po grupama:</p>";
    if ($maxprol > 0) {
        $koef = 80 / $maxprol;
    } else {
        $koef = 0;
    }
    ?>
<table border="0" cellspacing="0" cellpadding="0"><tr><?php 
    foreach ($grupe as $id => $naziv) {
        $height = intval($polozilo[$id] / $ukupno[$id] * $koef);
        $label = intval($polozilo[$id] / $ukupno[$id] * 100) . "%";
        ?>
<td width="50" valign="top">
		<table width="50" border="0" cellspacing="0" cellpadding="0">
			<tr><td align="center"><?php 
        echo $label;
        ?>
</td></tr>
			<tr><td>
				<img src="images/fnord.gif" width="1" height="<?php 
        echo 100 - $height;
        ?>
">
			</td></tr><tr><td bgcolor="#FF0000">
				<img src="images/fnord.gif" width="1" height="<?php 
        echo $height;
        ?>
">
			</td></tr>
			<tr><td align="center"><?php 
        echo $naziv;
        ?>
</td></tr>
		</table>
	</td><td width="10">&nbsp;</td><?php 
    }
    print "</tr></table>\n";
    // Broj bodova po grupama
    print "<p>Prosječan broj bodova po grupama:</p>";
    if ($maxprosj > 0) {
        $koef = 80 / $maxprosj;
    } else {
        $koef = 0;
    }
    ?>
<table border="0" cellspacing="0" cellpadding="0"><tr><?php 
    foreach ($grupe as $id => $naziv) {
        $height = intval($prosjek[$id] * $koef);
        $label = intval($prosjek[$id] * 10) / 10;
        ?>
<td width="50" valign="top">
		<table width="50" border="0" cellspacing="0" cellpadding="0">
			<tr><td align="center"><?php 
        echo $label;
        ?>
</td></tr>
			<tr><td>
				<img src="images/fnord.gif" width="1" height="<?php 
        echo 100 - $height;
        ?>
">
			</td></tr><tr><td bgcolor="#FF0000">
				<img src="images/fnord.gif" width="1" height="<?php 
        echo $height;
        ?>
">
			</td></tr>
			<tr><td align="center"><?php 
        echo $naziv;
        ?>
</td></tr>
		</table>
	</td><td width="10">&nbsp;</td><?php 
    }
    print "</tr></table>\n";
}
示例#4
0
function izvjestaj_anketa_semestralni()
{
    $ak_god = intval($_REQUEST['akademska_godina']);
    $studij = intval($_REQUEST['studij']);
    $semestar = intval($_REQUEST['semestar']);
    $dodaj = "";
    if ($semestar % 2 == 0) {
        $dodaj = "DESC";
    }
    $q10 = myquery("select id from anketa_anketa where akademska_godina={$ak_god} order by id {$dodaj}");
    if (mysql_num_rows($q10) == 0) {
        // da li postoji anketa uopce
        biguglyerror("Ne postoji anketa za datu akademsku godinu!");
        return;
    }
    // -----------------------------------------  SEMESTRALNI IZVJEŠTAJ ---------------------------------------
    if ($_REQUEST['akcija'] == "semestralni") {
        $q20 = myquery("select naziv from akademska_godina where id={$ak_god}");
        $naziv_ak_god = mysql_result($q20, 0, 0);
        if ($studij == -1) {
            $naziv_studija = "Svi studiji";
        } else {
            $q30 = myquery("select naziv from studij where id={$studij}");
            $naziv_studija = mysql_result($q30, 0, 0);
        }
        $id_ankete = mysql_result($q10, 0, 0);
        $q40 = myquery("SELECT count(*) FROM anketa_pitanje WHERE anketa={$id_ankete} and tip_pitanja=1");
        $broj_rank_pitanja = mysql_result($q40, 0, 0);
        ?>
		<center>
			<h3>Sumarna statistika za rank pitanja za akademsku godinu <?php 
        echo $naziv_ak_god;
        ?>
</h3>
			<h3><?php 
        echo $naziv_studija;
        ?>
, <?php 
        echo $semestar;
        ?>
. semestar</h3>
		</center>
		<table border="0" align="center">
			<tr>
				<td width='350px'>Prikaz prosjeka odgovora po pitanjima za sve predmete</td>
			</tr>
			<tr>
				<td><hr/></td>
			</tr>
		<?php 
        // Biramo pitanja za glavnu petlju
        $q50 = myquery("SELECT p.id, p.tekst,t.tip FROM anketa_pitanje p,anketa_tip_pitanja t WHERE p.tip_pitanja = t.id and p.anketa={$id_ankete} and p.tip_pitanja=1");
        $i = 0;
        while ($r50 = mysql_fetch_row($q50)) {
            $i++;
            print "<tr><td align='center'>{$i}. {$r50['1']}</td><tr>";
            print "<td><img src='?sta=izvjestaj/chart_semestralni&pitanje={$r50['0']}&semestar={$semestar}&studij={$studij}'><hr/></td></tr>";
        }
        ?>
		
		</table>
		<?php 
    } else {
        if ($_REQUEST['akcija'] == "semestralni_tab") {
            $q20 = myquery("select naziv from akademska_godina where id={$ak_god}");
            $naziv_ak_god = mysql_result($q20, 0, 0);
            $tekst_pitanja = $_REQUEST['tekst_pitanja'];
            if ($studij == -1) {
                $naziv_studija = "Svi studiji";
            } else {
                $q30 = myquery("select naziv from studij where id={$studij}");
                $naziv_studija = mysql_result($q30, 0, 0);
            }
            $id_ankete = mysql_result($q10, 0, 0);
            $q40 = myquery("SELECT count(*) FROM anketa_pitanje WHERE anketa={$id_ankete} and tip_pitanja=1");
            $broj_rank_pitanja = mysql_result($q40, 0, 0);
            // Spisak predmeta
            $predmeti = array();
            // Ako je za studij odabrana Prva godina studija onda izbacujemo uslov
            // studij iz sljedeceg upita jer nakon zadnjih izmjena u Zamgeru ne postoji
            // više studij PGS vec su studenti odmah razvrstani po smjerovima, na ovaj
            // nacin objedinjujemo razultate svih ponuda kursa za isti predmet
            if ($studij == -1) {
                $q50 = myquery("select distinct p.id, p.kratki_naziv, pk.obavezan from ponudakursa pk,predmet p, studij as s, tipstudija as ts where p.id=pk.predmet and pk.semestar={$semestar} and pk.studij=s.id and s.tipstudija=2");
            } else {
                $q50 = myquery("select distinct p.id, p.kratki_naziv, pk.obavezan \r\n\t\t\tfrom ponudakursa pk, predmet as p, institucija as i, studij as s, studij as s2\r\n\t\t\twhere p.id=pk.predmet and pk.semestar={$semestar} and s.id={$studij} and s.institucija=p.institucija and pk.studij=s2.id and s2.tipstudija=s.tipstudija");
            }
            while ($r50 = mysql_fetch_row($q50)) {
                // Da li je ovaj predmet imao ijednu anketu?
                $q55 = myquery("select count(*) from anketa_rezultat where anketa={$id_ankete} and predmet={$r50['0']} and zavrsena='Y'");
                if (mysql_result($q55, 0, 0) == 0) {
                    continue;
                }
                $predmeti[$r50[0]] = $r50[1];
                $obavezan[$r50[0]] = $r50[2];
            }
            ?>
		<center>
			<h3>Sumarna statistika za rank pitanja za akademsku godinu <?php 
            echo $naziv_ak_god;
            ?>
 - tabelarno</h3>
			<h3><?php 
            echo $naziv_studija;
            ?>
, <?php 
            echo $semestar;
            ?>
. semestar</h3>
		</center>
		<table border="1" align="center" cellpadding="2" cellspacing="0">
			<thead>
			<tr>
				<th>Pitanje</th>
				<?php 
            foreach ($predmeti as $naziv) {
                print "<th>{$naziv}</th>\n";
            }
            ?>
				<th>Prosjek</th>
			</tr>
			</thead>
			<tbody>
		<?php 
            // biramo pitanja za glavnu petlju
            $q60 = myquery("SELECT p.id, p.tekst,t.tip FROM anketa_pitanje p,anketa_tip_pitanja t WHERE p.tip_pitanja = t.id and p.anketa={$id_ankete} and p.tip_pitanja=1 order by p.id");
            $i = 0;
            $maxpredmet = array();
            while ($r60 = mysql_fetch_row($q60)) {
                $pitanje = $r60[0];
                $i++;
                if (strstr($r60[1], "ocjena predmeta")) {
                    print "<tr bgcolor=\"#FFFF00\">\n";
                } else {
                    print "<tr>\n";
                }
                if ($tekst_pitanja === "da") {
                    print "<td width=\"400\">{$i}. {$r60['1']}</td>\n";
                } else {
                    print "<td>{$i}</td>\n";
                }
                $sumpitanje = 0;
                foreach ($predmeti as $pid => $pnaziv) {
                    $q6730 = myquery("SELECT avg( b.izbor_id ), STDDEV_POP(b.izbor_id), count(*) FROM anketa_rezultat a, anketa_odgovor_rank b WHERE a.id = b.rezultat AND b.pitanje={$pitanje} AND a.predmet={$pid} AND zavrsena='Y'");
                    print "<td>" . round(mysql_result($q6730, 0, 0), 2) . "</td>\n";
                    $sumpitanje += mysql_result($q6730, 0, 0);
                    if (mysql_result($q6730, 0, 2) > $maxpredmet[$pid]) {
                        $maxpredmet[$pid] = mysql_result($q6730, 0, 2);
                    }
                }
                if (count($predmeti) == 0) {
                    print "<td>0</td>\n</tr>\n";
                } else {
                    print "<td>" . round($sumpitanje / count($predmeti), 2) . "</td>\n</tr>\n";
                }
            }
            print "<tr>\n<td>Br.st</td>\n";
            $sumaobaveznih = $brobaveznih = 0;
            foreach ($predmeti as $pid => $pnaziv) {
                print "<td>" . $maxpredmet[$pid] . "</td>\n";
                if ($obavezan[$pid]) {
                    $sumaobaveznih += $maxpredmet[$pid];
                    $brobaveznih++;
                }
            }
            if ($brobaveznih == 0) {
                print "<td>0</td></tr>\n";
            } else {
                print "<td>" . round($sumaobaveznih / $brobaveznih, 1) . "</td></tr>\n";
            }
            ?>
			</tbody>
		</table> 
		<?php 
        } else {
            if ($_REQUEST['akcija'] == "ects_krediti") {
                $pitanje = intval($_REQUEST['pitanje']);
                $q20 = myquery("select naziv from akademska_godina where id={$ak_god}");
                $naziv_ak_god = mysql_result($q20, 0, 0);
                if ($studij == -1) {
                    $naziv_studija = "Svi studiji";
                } else {
                    $q30 = myquery("select naziv from studij where id={$studij}");
                    $naziv_studija = mysql_result($q30, 0, 0);
                }
                $id_ankete = mysql_result($q10, 0, 0);
                $q40 = myquery("SELECT count(*) FROM anketa_pitanje WHERE anketa={$id_ankete} and tip_pitanja=1");
                $broj_rank_pitanja = mysql_result($q40, 0, 0);
                // Spisak predmeta
                $predmeti = array();
                // Ako je za studij odabrana Prva godina studija onda izbacujemo uslov
                // studij iz sljedeceg upita jer nakon zadnjih izmjena u Zamgeru ne postoji
                // više studij PGS vec su studenti odmah razvrstani po smjerovima, na ovaj
                // nacin objedinjujemo razultate svih ponuda kursa za isti predmet
                if ($studij == -1) {
                    $q50 = myquery("select distinct p.id, p.kratki_naziv, p.ects, (p.sati_predavanja+p.sati_vjezbi+p.sati_tutorijala) from ponudakursa pk,predmet p, studij as s, tipstudija as ts where p.id=pk.predmet and pk.semestar={$semestar} and pk.studij=s.id and s.tipstudija=2");
                } else {
                    $q50 = myquery("select distinct p.id, p.kratki_naziv, p.ects, (p.sati_predavanja+p.sati_vjezbi+p.sati_tutorijala) from ponudakursa pk,predmet p where p.id=pk.predmet and pk.studij={$studij} and pk.semestar={$semestar}");
                }
                while ($r50 = mysql_fetch_row($q50)) {
                    // Da li je ovaj predmet imao ijednu anketu?
                    if ($studij == -1) {
                        $q55 = myquery("select count(*) from anketa_rezultat where anketa={$id_ankete} and predmet={$r50['0']} and zavrsena='Y'");
                    } else {
                        $q55 = myquery("select count(*) from anketa_rezultat where anketa={$id_ankete} and predmet={$r50['0']} and zavrsena='Y' and studij={$studij}");
                    }
                    if (mysql_result($q55, 0, 0) == 0) {
                        continue;
                    }
                    $predmeti[$r50[0]] = $r50[1];
                    $predmet_ects[$r50[0]] = $r50[2];
                    $predmet_sati[$r50[0]] = $r50[3];
                }
                ?>
		<center>
			<h3>Usporedba broja ECTS kredita sa anketnim pitanjem o vremenu</h3>
			<h3><?php 
                echo $naziv_studija;
                ?>
, <?php 
                echo $semestar;
                ?>
. semestar, <?php 
                echo $naziv_ak_god;
                ?>
</h3>
		</center>
		<table border="1" align="center" cellpadding="2" cellspacing="0">
			<thead>
			<tr>
				<th>1<br />Predmet</th>
				<th>2<br />ECTS</th>
				<th>3<br />Uk. sati<br/> (k2 * 25 sati)</th>
				<th>4<br />Nastave</th>
				<th>5<br />Samostalno<br/> (k3 - k4)</th>
				<th>6<br />Sedmično<br/> (k5 / 15 sedmica)</th>
				<th>7<br />Sedmično<br/> (anketa)</th>
				<th>8<br />Razlika<br/> (k7 - k6) / k7 </th>
				<th>9<br />Broj anketiranih<br />studenata</th>
				<th>10<br />Korekcija<br/> ECTS kredita</th>
			</tr>
			</thead>
			<tbody>
		<?php 
                foreach ($predmeti as $pid => $predmet_naziv) {
                    $ects_sati = $predmet_ects[$pid] * 25;
                    $samostalno_sati = $ects_sati - $predmet_sati[$pid];
                    $samostalno_sedmicno = $samostalno_sati / 15;
                    $korekcija = "";
                    // Odredjujemo broj sati po anketi
                    $suma = $broj = 0;
                    if ($studij == -1) {
                        $q0376 = myquery("select b.izbor_id from anketa_rezultat a, anketa_odgovor_rank b where a.id = b.rezultat and b.pitanje={$pitanje} and a.predmet={$pid} and zavrsena='Y'");
                    } else {
                        $q0376 = myquery("select b.izbor_id from anketa_rezultat a, anketa_odgovor_rank b where a.id = b.rezultat and b.pitanje={$pitanje} and a.predmet={$pid} and zavrsena='Y' AND a.studij={$studij}");
                    }
                    while ($r0376 = mysql_fetch_row($q0376)) {
                        $suma += $r0376[0] * 2 - 1;
                        $broj++;
                    }
                    if ($broj == 0) {
                        continue;
                    }
                    // Niko nije odgovorio na pitanje o opterećenju
                    $anketa_sati = $suma / $broj;
                    $razlika_sati = $anketa_sati - $samostalno_sedmicno;
                    if ($razlika_sati > 0.5 || $razlika_sati < -0.5) {
                        $novi_sati = $predmet_sati[$pid] + $anketa_sati * 15;
                        $korekcija = round($novi_sati / 25, 0);
                        $kor_zarez = $novi_sati / 25 - $korekcija;
                        if ($kor_zarez == -0.5) {
                            $korekcija -= 0.5;
                        }
                        if ($kor_zarez > 0.3) {
                            $korekcija += 0.5;
                        }
                        if ($korekcija == $predmet_ects[$pid]) {
                            $korekcija = "";
                        }
                    }
                    $razlika_sati = procenat($razlika_sati, $samostalno_sedmicno);
                    ?>
			<tr>
				<td><?php 
                    echo $predmet_naziv;
                    ?>
</td>
				<td><?php 
                    echo $predmet_ects[$pid];
                    ?>
</td>
				<td><?php 
                    echo $ects_sati;
                    ?>
</td>
				<td><?php 
                    echo $predmet_sati[$pid];
                    ?>
</td>
				<td><?php 
                    echo $samostalno_sati;
                    ?>
</td>
				<td><?php 
                    echo round($samostalno_sedmicno, 2);
                    ?>
</td>
				<td><?php 
                    echo round($anketa_sati, 2);
                    ?>
</td>
				<td><?php 
                    echo round($razlika_sati, 0);
                    ?>
%</td>
				<td><?php 
                    echo $broj;
                    ?>
</td>
				<td><?php 
                    echo $korekcija;
                    ?>
</td>
			</tr>
			<?php 
                }
                /*while ($r60 = mysql_fetch_row($q60)) {
                			$pitanje = $r60[0];
                			$i++;
                			if (strstr($r60[1], "ocjena predmeta"))
                				print "<tr bgcolor=\"#FFFF00\">\n";
                			else
                				print "<tr>\n";
                			print "<td>$i</td>\n";
                			$sumpitanje=0;
                			foreach ($predmeti as $pid => $pnaziv) {
                				if ($studij==-1)
                					$q6730 = myquery("SELECT avg( b.izbor_id ), STDDEV_POP(b.izbor_id), count(*) FROM anketa_rezultat a, anketa_odgovor_rank b WHERE a.id = b.rezultat AND b.pitanje=$pitanje AND a.predmet=$pid AND zavrsena='Y'");
                				else
                					$q6730 = myquery("SELECT avg( b.izbor_id ), STDDEV_POP(b.izbor_id), count(*) FROM anketa_rezultat a, anketa_odgovor_rank b WHERE a.id = b.rezultat AND b.pitanje=$pitanje AND a.predmet=$pid AND zavrsena='Y' AND a.studij=$studij");
                				
                				print "<td>".round(mysql_result($q6730,0,0),2)."</td>\n";
                				$sumpitanje += mysql_result($q6730,0,0);
                				if (mysql_result($q6730,0,2) > $maxpredmet[$pid]) $maxpredmet[$pid]=mysql_result($q6730,0,2);
                			}
                			print "<td>".round($sumpitanje/count($predmeti),2)."</td>\n</tr>\n";
                		}
                		print "<tr>\n<td>Br.st</td>\n";
                		foreach ($predmeti as $pid => $pnaziv) {
                			print "<td>".$maxpredmet[$pid]."</td>\n";
                		}
                		print "<td>&nbsp;</td></tr>\n";*/
                ?>
			</tbody>
		</table> 
		<?php 
            } else {
                if ($_REQUEST['akcija'] == "po_smjerovima") {
                    biguglyerror("Nije u funkciji... žalimo");
                    return;
                    $q0111 = myquery("select naziv from akademska_godina where id = {$ak_god}");
                    $naziv_ak_god = mysql_result($q0111, 0, 0);
                    //anketa za datu godinu:
                    $q011 = myquery("select id from anketa_anketa where akademska_godina= {$ak_god}");
                    $anketa = mysql_result($q011, 0, 0);
                    ?>
		<center>
			<h3>Sumarna statistika za rank pitanja za akademsku godinu <?php 
                    echo $naziv_ak_god;
                    ?>
  po smjerovima</h3>
			<h3><?php 
                    if ($semestar == 1) {
                        print "Zimski semestar";
                    } else {
                        if ($semestar == 2) {
                            print "Ljetni semestar";
                        } else {
                            print "Cijela godina";
                        }
                    }
                    ?>
</h3>
		</center>
		
		<table align="center">
			<tr>
			<!-- FIXME povući studije iz baze -->
			<td align="center" bgcolor='#00FF00' height="20" width="150">PGS</td>
			<td align="center" bgcolor='#FF0000' width="150">RI</td>
			<td align="center" bgcolor='#0000FF' width="150">AE</td>
			<td align="center" bgcolor='#00FFFF' width="150">EE</td>
			<td align="center" bgcolor='#FFFF00' width="150">TK</td>
			</tr>
			<tr>
			<td colspan="5">
				<img src='izvjestaj/po_smjerovima_linijski.php?anketa=<?php 
                    echo $anketa;
                    ?>
&semestar=<?php 
                    echo $semestar;
                    ?>
'>
			</td>
			</tr>
		</table>
		<?php 
                } else {
                    if ($_REQUEST['akcija'] == "distribucija") {
                        $q0111 = myquery("select naziv from akademska_godina where id = {$ak_god}");
                        $naziv_ak_god = mysql_result($q0111, 0, 0);
                        if ($studij == -1) {
                            $naziv_studija = "Svi studiji";
                        } else {
                            $q30 = myquery("select naziv from studij where id={$studij}");
                            $naziv_studija = mysql_result($q30, 0, 0);
                        }
                        ?>
		<center>
			<h3>Distribucija ocjena</h3>
			<h3><?php 
                        echo $naziv_studija;
                        ?>
, <?php 
                        echo $semestar;
                        ?>
. semestar, <?php 
                        echo $naziv_ak_god;
                        ?>
</h3>
		</center>
		<table border="1" align="center" cellpadding="2" cellspacing="0">
			<thead>
			<tr>
				<th>Predmet</th>
				<th>Ocjena 6<br />(%)</th>
				<th>Ocjena 7<br />(%)</th>
				<th>Ocjena 8<br />(%)</th>
				<th>Ocjena 9<br />(%)</th>
				<th>Ocjena 10<br />(%)</th>
				<th>Odstupanje</th>
			</tr>
			</thead>
			<tbody>
		<?php 
                        // Kalkulacija prosjeka
                        $q100 = myquery("select ocjena, count(*) from konacna_ocjena where akademska_godina={$ak_god} and ocjena>5 group by ocjena");
                        $sumatotal = 0;
                        while ($r100 = mysql_fetch_row($q100)) {
                            $suma_ocjena[$r100[0]] = $r100[1];
                            $sumatotal += $r100[1];
                        }
                        ?>
		<tr bgcolor="#cccccc">
			<td>ETF PROSJEK</td>
			<?php 
                        for ($i = 6; $i <= 10; $i++) {
                            $procenat[$i] = procenat($suma_ocjena[$i], $sumatotal);
                            // trebace nam za odstupanje
                            ?>
				<td><?php 
                            echo $suma_ocjena[$i];
                            ?>
<br /><?php 
                            echo $procenat[$i];
                            ?>
</td>
				<?php 
                        }
                        ?>
			<td>0</td>
		</tr>
		<?php 
                        if ($studij == -1) {
                            $q110 = myquery("select distinct p.id, p.kratki_naziv from ponudakursa pk,predmet p, studij as s, tipstudija as ts where p.id=pk.predmet and pk.semestar={$semestar} and pk.studij=s.id and s.tipstudija=2");
                        } else {
                            $q110 = myquery("select distinct p.id, p.kratki_naziv from ponudakursa pk,predmet p where p.id=pk.predmet and pk.studij={$studij} and pk.semestar={$semestar}");
                        }
                        while ($r110 = mysql_fetch_row($q110)) {
                            $q120 = myquery("select ocjena, count(*) from konacna_ocjena where akademska_godina={$ak_god} and ocjena>5 and predmet={$r110['0']} group by ocjena");
                            if (mysql_num_rows($q120) == 0) {
                                continue;
                            }
                            $suma_ocjena_pr = array();
                            $sumatotal_pr = 0;
                            $odstupanje = 0;
                            while ($r120 = mysql_fetch_row($q120)) {
                                $suma_ocjena_pr[$r120[0]] = $r120[1];
                                $sumatotal_pr += $r120[1];
                            }
                            ?>
			<tr>
				<td><?php 
                            echo $r110[1];
                            ?>
</td>
				<?php 
                            for ($i = 6; $i <= 10; $i++) {
                                $procenat_pr = procenat($suma_ocjena_pr[$i], $sumatotal_pr);
                                // trebace nam za odstupanje
                                ?>
					<td><?php 
                                echo intval($suma_ocjena_pr[$i]);
                                ?>
<br /><?php 
                                echo $procenat_pr;
                                ?>
</td>
					<?php 
                                if (floatval($procenat_pr) > floatval($procenat[$i])) {
                                    $odstupanje += $procenat_pr - $procenat[$i];
                                }
                            }
                            ?>
				<td><?php 
                            echo $odstupanje;
                            ?>
%</td>
			</tr>
			<?php 
                        }
                        ?>
			</tbody>
		</table>
		<?php 
                    }
                }
            }
        }
    }
}
示例#5
0
function izvjestaj_prolaznost()
{
    ?>
<p>Univerzitet u Sarajevu<br/>
Elektrotehnički fakultet Sarajevo</p>
<p>Datum i vrijeme izvještaja: <?php 
    echo date("d. m. Y. H:i");
    ?>
</p>
<?php 
    // parametri izvjestaja
    $akgod = intval($_REQUEST['_lv_column_akademska_godina']);
    $studij = intval($_REQUEST['_lv_column_studij']);
    $period = intval($_REQUEST['period']);
    // 0 = semestar, 1 = godina
    $semestar = intval($_REQUEST['semestar']);
    $godina = intval($_REQUEST['godina']);
    $ispit = intval($_REQUEST['ispit']);
    // 1 = prvi parc., 2 = drugi p., 3 = broj bodova, 4 = konacna ocjena, 5 = uslov za usmeni
    $cista_gen = intval($_REQUEST['cista_gen']);
    // 0 = svi, 1 = bez kolizije i prenesenih, 2 = redovni, 3 = cista gen.
    $studenti = intval($_REQUEST['studenti']);
    // 1 = prikazi pojedinacne studente
    $sortiranje = intval($_REQUEST['sortiranje']);
    // 0 = po prezimenu, 1 = po broju bodova, 2 = po broju indexa
    $oboji = $_REQUEST['oboji'];
    // "tajna" opcija za bojenje studija
    $tipstudija = intval($_REQUEST['tipstudija']);
    // "tajna" opcija koja se koristi u kombinaciji sa $studij = -1 (svi studiji)
    if ($tipstudija == 0) {
        $tipstudija = 2;
    }
    // Naslov
    $q20 = myquery("select naziv from akademska_godina where id={$akgod}");
    ?>
<h2>Prolaznost</h2>
<p>Studij: <b><?php 
    if ($studij == -1) {
        $q10 = myquery("select naziv from tipstudija where id={$tipstudija}");
    } else {
        $q10 = myquery("select naziv from studij where id={$studij}");
    }
    if (mysql_num_rows($q10) < 1) {
        niceerror("Nepoznat studij / tipstudija");
        return;
    }
    if ($studij == -1) {
        print "Svi studenti (" . mysql_result($q10, 0, 0) . ")";
    } else {
        print mysql_result($q10, 0, 0);
    }
    ?>
</b><br/>
Akademska godina: <b><?php 
    echo mysql_result($q20, 0, 0);
    ?>
</b><br/>
Godina/semestar studija: <b><?php 
    if ($period == 0) {
        if ($semestar == 0) {
            $semestar = 1;
        }
        print "{$semestar}. semestar";
    } else {
        if ($godina == 0) {
            $godina = 1;
        }
        print "{$godina}. godina, ";
    }
    ?>
</b><br/>
Obuhvaćeni studenti: <b><?php 
    if ($cista_gen == 0) {
        print "Redovni, Ponovci, Preneseni predmeti i kolizija";
    } elseif ($cista_gen == 1) {
        print "Redovni, Ponovci";
    } elseif ($cista_gen == 2) {
        print "Redovni studenti";
    } elseif ($cista_gen == 3) {
        print "Čista generacija";
    } elseif ($cista_gen == 4) {
        print "Ponovci";
    }
    ?>
</b><br/><br/>
Vrsta izvještaja: <b><?php 
    if ($ispit == 1) {
        print "I parcijalni ispit";
    } elseif ($ispit == 2) {
        print "II parcijalni ispit";
    } elseif ($ispit == 3) {
        print "Ukupni bodovi";
    } elseif ($ispit == 4) {
        print "Konačna ocjena";
    } elseif ($ispit == 5) {
        print "Uslovi za usmeni ispit";
    }
    ?>
</b><br/>
</p><?php 
    // Razni dodaci na upite ovisno o primljenim parametrima
    if ($period == 0) {
        // Semestar ili godina?
        $semestar_upit = "pk.semestar={$semestar}";
        $sem_stud_upit = "semestar={$semestar}";
    } else {
        $semestar_upit = "(pk.semestar=" . ($godina * 2 - 1) . " or pk.semestar=" . $godina * 2 . ")";
        $sem_stud_upit = "semestar=" . ($godina * 2 - 1);
        // blazi kriterij za studente koji slusaju
    }
    $studij_upit_pk = "";
    $studij_upit_ss = "";
    $studij_upit_ss2 = "";
    if ($studij > -1) {
        // Izbor studija
        $studij_upit_pk = "and pk.studij={$studij}";
        $studij_upit_ss = "and ss.studij={$studij}";
        $studij_upit_ss2 = "and ss2.studij={$studij}";
    } else {
        $q25 = myquery("select id from studij where tipstudija={$tipstudija}");
        while ($r25 = mysql_fetch_row($q25)) {
            if ($studij_upit_pk == "") {
                $studij_upit_pk = "and (pk.studij={$r25['0']}";
                $studij_upit_ss = "and (ss.studij={$r25['0']}";
                $studij_upit_ss2 = "and (ss2.studij={$r25['0']}";
            } else {
                $studij_upit_pk .= " or pk.studij={$r25['0']}";
                $studij_upit_ss .= " or ss.studij={$r25['0']}";
                $studij_upit_ss2 .= " or ss2.studij={$r25['0']}";
            }
        }
        $studij_upit_pk .= ")";
        $studij_upit_ss .= ")";
        $studij_upit_ss2 .= ")";
    }
    // ($q30) Spisak predmeta na studij-semestru
    if ($studij == -1) {
        $q30 = myquery("select distinct p.id, p.naziv, 1 from predmet as p, ponudakursa as pk where pk.predmet=p.id and pk.akademska_godina={$akgod} {$studij_upit_pk} and {$semestar_upit} order by pk.obavezan desc, p.naziv");
    } else {
        $q30 = myquery("select p.id, p.naziv, pk.obavezan from predmet as p, ponudakursa as pk where pk.predmet=p.id and pk.akademska_godina={$akgod} {$studij_upit_pk} and {$semestar_upit} order by pk.obavezan desc, p.naziv");
    }
    // Dodatak upitu za studente
    $upit_studenti = "";
    if ($cista_gen >= 1) {
        // Student trenutno upisan na dati studij/semestar
        $upit_studenti = "{$studij_upit_ss} and ss.{$sem_stud_upit} and ss.akademska_godina={$akgod}";
    }
    if ($cista_gen == 2) {
        // Student nije nikada prije slusao dati studij/semestar
        // FIXME: pretpostavka je da IDovi akademskih godina idu redom
        $upit_studenti .= " and (select count(*) from student_studij as ss2 where ss2.student=io.student {$studij_upit_ss2} and ss2.{$sem_stud_upit} and ss2.akademska_godina<{$akgod})=0";
    }
    if ($cista_gen == 3) {
        // Student nije nikada ponavljao godinu (nema zapisa o upisu u studij prije datog broja godina)
        // FIXME: pretpostavka je da IDovi akademskih godina idu redom
        $upisao_godine = $akgod;
        if ($period == 0) {
            $upisao_godine -= intval(($semestar + 1) / 2);
        } else {
            $upisao_godine -= $godina;
        }
        $upit_studenti .= " and (select count(*) from student_studij as ss2 where ss2.student=io.student and ss2.akademska_godina<={$upisao_godine})=0";
    }
    if ($cista_gen == 4) {
        // Samo ponovci
        $upit_studenti .= " and (select count(*) from student_studij as ss2 where ss2.student=io.student {$studij_upit_ss2} and ss2.{$sem_stud_upit} and ss2.akademska_godina<{$akgod})>0";
    }
    // PODIZVJESTAJ 1
    // 1 = I parc., 2 = II parc., 4 = Konacna ocjena
    if ($ispit == 1 || $ispit == 2 || $ispit == 3 || $ispit == 4 || $ispit == 5) {
        global $polozio;
        $polozio = array();
        // ne znam kako bez global :(
        global $suma_bodova;
        $suma_bodova = array();
        global $brindexa;
        $brindexa = array();
        // Zaglavlja tabela, ovisno o tome da li su navedeni pojedinacni studenti ili ne
        if ($studenti == 1) {
            print "<p>Pregled po studentima.";
            if ($sortiranje == 1 && $ispit == 4) {
                print " Spisak je sortiran po broju položenih predmeta i ocjenama.</p>\n";
            } else {
                if ($sortiranje == 1) {
                    print " Spisak je sortiran po broju položenih ispita i bodovima.</p>\n";
                } else {
                    print " Spisak je sortiran po prezimenu.</p>\n";
                }
            }
            if ($oboji == "odsjek") {
                ?>
			<table width="100%" border="0" cellpadding="4" cellspacing="4"><tr>
				<td align="left">
					<table border="1" bgcolor="#FF9999" width="100"><tr><td>&nbsp;</td></tr></table>
					Računarstvo i informatika
				</td>
				<td align="left">
					<table border="1" bgcolor="#99FF99" width="100"><tr><td>&nbsp;</td></tr></table>
					Automatika i elektronika
				</td>
				<td align="left">
					<table border="1" bgcolor="#9999FF" width="100"><tr><td>&nbsp;</td></tr></table>
					Elektroenergetika
				</td>
				<td align="left">
					<table border="1" bgcolor="#FF99FF" width="100"><tr><td>&nbsp;</td></tr></table>
					Telekomunikacije
				</td>
			</tr></table>
			<?php 
            }
        }
        if ($studenti == 0 && $ispit == 4) {
            // $studenti = prikaz individualnih studenata
            ?>
<table border="1" cellspacing="0" cellpadding="2">
			<tr><th>Predmet</th>
			<th>Upisalo</th>
			<th>Položilo</th>
			<th>%</th>
		</tr><?php 
        } else {
            if ($studenti == 0 && ($ispit == 5 || $ispit == 3)) {
                ?>
<table border="1" cellspacing="0" cellpadding="2">
			<tr><th>Predmet</th>
			<th>Upisalo</th>
			<th>Ima uslove</th>
			<th>%</th>
		</tr><?php 
            } else {
                if ($studenti == 0) {
                    ?>
<table border="1" cellspacing="0" cellpadding="2">
			<tr><th><b>Predmet</b></th>
			<th><b>Izašlo</b></th>
			<th><b>Položilo</b></th>
			<th><b>%</b></th>
		</tr><?php 
                } else {
                    ?>
		<table  border="1" cellspacing="0" cellpadding="2">
		<tr>
			<th>R. br.</th>
			<th>Student</th>
			<th>Br. indeksa</th>
		<?php 
                    if ($studij == -1) {
                        print "<th>Studij</th>\n";
                    }
                    while ($r30 = mysql_fetch_row($q30)) {
                        $kursevi[$r30[0]] = $r30[1];
                        $naziv = $r30[1];
                        if ($r30[2] == 0) {
                            $naziv .= " *";
                        }
                        print "<th>{$naziv}</th>\n";
                    }
                    print "<th>UKUPNO:</th></tr>\n";
                }
            }
        }
        // ($q40) Upit za spisak studenata
        if ($cista_gen == 0) {
            // Redovni studenti + ponovci + preneseni studenti
            // (svi upisani na predmete sa studija/semestra)
            $q40 = myquery("select distinct sp.student from student_predmet as sp, ponudakursa as pk where sp.predmet=pk.id and pk.akademska_godina={$akgod} {$studij_upit_pk} and {$semestar_upit}");
            $uk_studenata = mysql_num_rows($q40);
            // Statisticki podaci o generaciji
            // Redovni studenti
            //$q50 = myquery("select count(*) from student_studij as ss where ss.akademska_godina=$akgod $studij_upit_ss and ss.$sem_stud_upit and (select count(*) from student_studij as ss2 where ss2.student=ss.student $studij_upit_ss2 and ss2.$sem_stud_upit and ss2.akademska_godina<$akgod)=0");
            $q50 = myquery("select count(*) from student_studij as ss where ss.akademska_godina={$akgod} {$studij_upit_ss} and ss.{$sem_stud_upit} and ss.ponovac=0");
            $redovnih = mysql_result($q50, 0, 0);
            // Ukupan broj studenata na studiju
            $q60 = myquery("select count(ss.student) from student_studij as ss where ss.akademska_godina={$akgod} {$studij_upit_ss} and ss.{$sem_stud_upit}");
            // Posto su neki ponovci polozili sve iz ovog semestra, sljedeci upit vraca samo prenesene predmete
            // i kolizije kako bi ukupna statistika bila tacna, cak iako se suma ne poklapa
            if ($period == 0) {
                $prenesenoupit = "ss.semestar>{$semestar}";
                // Pretpostavljamo da student ne može biti istovremeno upisan na drugi studij
                $kolizijaupit = "ss.semestar<{$semestar}";
            } else {
                $prenesenoupit = "ss.semestar>" . $godina * 2;
                $kolizijaupit = "ss.semestar<" . ($godina * 2 - 1);
            }
            $q65 = myquery("SELECT count(distinct sp.student) FROM student_predmet as sp, ponudakursa as pk, student_studij as ss WHERE sp.predmet=pk.id {$studij_upit_pk} and {$semestar_upit} and pk.akademska_godina={$akgod} and ss.student=sp.student and {$prenesenoupit} and ss.akademska_godina={$akgod}");
            $q67 = myquery("SELECT count(distinct sp.student) FROM student_predmet as sp, ponudakursa as pk, student_studij as ss WHERE sp.predmet=pk.id {$studij_upit_pk} and {$semestar_upit} and pk.akademska_godina={$akgod} and ss.student=sp.student and {$kolizijaupit} and ss.akademska_godina={$akgod}");
            $ukupno_na_godini = mysql_result($q60, 0, 0);
            $ponovaca = $ukupno_na_godini - $redovnih;
            $prenesenih = mysql_result($q65, 0, 0);
            $kolizije = mysql_result($q67, 0, 0);
            $ispis_br_studenata = "Ukupno studenata:<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>{$redovnih}</b> studenata redovno upisalo godinu<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>{$ponovaca}</b> ponavlja godinu<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>{$prenesenih}</b> prenijelo predmet na iduću godinu<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>{$kolizije}</b> sluša predmete sa ove godine u koliziji";
            // Ova statistika se izvrsava presporo:
            /*
            $q604a = myquery("select count(*) from student_studij as ss where ss.studij=$studij and ss.akademska_godina=$akgod and ss.$sem_stud_upit");
            $q604 = myquery("select count(*) from student_studij as ss where ss.studij=$studij and ss.akademska_godina=$akgod and ss.$sem_stud_upit and (select count(*) from student_studij as ss2 where ss2.student=ss.student and ss2.studij=$studij and ss2.$sem_stud_upit and ss2.akademska_godina<$akgod)=0");
            $q604b = myquery("select count(*) from student_labgrupa as sl, labgrupa as l, ponudakursa as pk where sl.labgrupa=l.id and l.predmet=pk.id and pk.akademska_godina=$akgod and pk.studij=$studij and $semestar_upit and (select count(*) from student_studij as ss where ss.student=sl.student and ss.studij=$studij and ss.akademska_godina=$akgod and ss.$sem_stud_upit)=0");
            
            $redovnih = mysql_result($q604,0,0);
            $ponovaca = mysql_result($q604a,0,0) - $redovnih;
            $prenesenih = mysql_result($q604b,0,0);
            $ispis_br_studenata = "Predmete slušalo: <b>$redovnih</b> redovnih studenata + <b>$ponovaca</b> ponovaca + <b>$prenesenih</b> prenesenih predmeta";
            */
        } else {
            if ($cista_gen == 1) {
                // Redovni studenti i ponovci
                $q40 = myquery("select ss.student from student_studij as ss where ss.akademska_godina={$akgod} {$studij_upit_ss} and ss.{$sem_stud_upit}");
                $q50 = myquery("select count(*) from student_studij as ss where ss.akademska_godina={$akgod} {$studij_upit_ss} and ss.{$sem_stud_upit} and (select count(*) from student_studij as ss2 where ss2.student=ss.student {$studij_upit_ss2} and ss2.{$sem_stud_upit} and ss2.akademska_godina<{$akgod})=0");
                $uk_studenata = mysql_num_rows($q40);
                $redovnih = mysql_result($q50, 0, 0);
                $ponovaca = $uk_studenata - $redovnih;
                $ispis_br_studenata = "Semestar upisalo: <b>{$redovnih}</b> redovnih studenata + <b>{$ponovaca}</b> ponovaca";
            } else {
                if ($cista_gen == 2) {
                    // Samo redovni, bez ponovaca (nisu nikada slusali istu ak. godinu)
                    $q40 = myquery("select ss.student from student_studij as ss where ss.akademska_godina={$akgod} {$studij_upit_ss} and ss.{$sem_stud_upit} and ss.ponovac=0 and (select count(*) from student_studij as ss2 where ss2.student=ss.student {$studij_upit_ss2} and ss2.{$sem_stud_upit} and ss2.akademska_godina<{$akgod})=0");
                    $uk_studenata = mysql_num_rows($q40);
                    $ispis_br_studenata = "Semestar upisalo: <b>{$uk_studenata}</b> redovnih studenata";
                } else {
                    if ($cista_gen == 3) {
                        // Studenti koji nisu nikada nista ponavljali (upisali fakultet prije semestar/2 godina)
                        // FIXME: Pretpostavka je da IDovi akademskih godina idu redom
                        $upisao_godine = $akgod;
                        if ($period == 0) {
                            $upisao_godine -= intval(($semestar + 1) / 2);
                        } else {
                            $upisao_godine -= $godina;
                        }
                        $q40 = myquery("select ss.student from student_studij as ss where ss.akademska_godina={$akgod} {$studij_upit_ss} and ss.{$sem_stud_upit} and ss.ponovac=0 and (select count(*) from student_studij as ss2 where ss2.student=ss.student and ss2.akademska_godina<={$upisao_godine})=0");
                        $uk_studenata = mysql_num_rows($q40);
                        $ispis_br_studenata = "Semestar upisalo: <b>{$uk_studenata}</b> studenata &quot;čiste generacije&quot;";
                    } else {
                        if ($cista_gen == 4) {
                            // Samo ponovci
                            $q40 = myquery("select ss.student from student_studij as ss where ss.akademska_godina={$akgod} {$studij_upit_ss} and ss.{$sem_stud_upit} and ss.ponovac=1");
                            $uk_studenata = mysql_num_rows($q40);
                            $ispis_br_studenata = "Semestar upisalo: <b>{$uk_studenata}</b> ponovaca";
                        }
                    }
                }
            }
        }
        // Cache ispita za I i II parcijalni ispit
        // Gledamo samo redovni rok a.k.a. prvi ispit datog tipa
        $cache_ispiti = $cache_predmeti = array();
        if ($ispit == 1 || $ispit == 2) {
            $q90 = myquery("select i.id, p.id from ispit as i, ponudakursa as pk, predmet as p where i.predmet=p.id and i.akademska_godina=pk.akademska_godina and pk.predmet=p.id and pk.akademska_godina={$akgod} {$studij_upit_pk} and {$semestar_upit} and i.komponenta={$ispit} group by i.predmet,i.komponenta");
            while ($r90 = mysql_fetch_row($q90)) {
                array_push($cache_ispiti, $r90[0]);
                array_push($cache_predmeti, $r90[1]);
            }
        }
        // Cache komponenti
        if ($ispit == 5) {
            $cache_komponente = array();
            if ($studij == -1) {
                $q31 = myquery("select distinct p.id, p.naziv, 1 from predmet as p, ponudakursa as pk where pk.predmet=p.id and pk.akademska_godina={$akgod} {$studij_upit_pk} and {$semestar_upit} order by pk.obavezan desc, p.naziv");
            } else {
                $q31 = myquery("select p.id, p.naziv, pk.obavezan from predmet as p, ponudakursa as pk where pk.predmet=p.id and pk.akademska_godina={$akgod} {$studij_upit_pk} and {$semestar_upit} order by pk.obavezan desc, p.naziv");
            }
            while ($r31 = mysql_fetch_row($q31)) {
                $predmet = $r31[0];
                $cache_komponente[$predmet] = array();
                $q95 = myquery("select k.id, k.prolaz, k.gui_naziv from komponenta as k, tippredmeta_komponenta as tpk, akademska_godina_predmet as agp where agp.predmet={$predmet} and agp.akademska_godina={$akgod} and agp.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente!=2 and k.gui_naziv != 'Usmeni' and k.gui_naziv != 'Završni ispit'");
                while ($r95 = mysql_fetch_row($q95)) {
                    $cache_komponente[$predmet][$r95[0]] = $r95[1];
                }
            }
        }
        // GLAVNA PETLJA
        // Izracunavanje statistickih podataka
        $max_broj_polozenih = 0;
        while ($r40 = mysql_fetch_row($q40)) {
            $stud_id = $r40[0];
            // Zaglavlje za poimenicni spisak studenata
            if ($studenti == 1) {
                $q100 = myquery("select ime, prezime, brindexa from osoba where id={$stud_id}");
                $imeprezime[$stud_id] = mysql_result($q100, 0, 1) . " " . mysql_result($q100, 0, 0);
                $brindexa[$stud_id] = mysql_result($q100, 0, 2);
                /* Korisna informacija - kako je upotrijebiti?
                			$q105 = myquery("select studij from student_studij where student=$stud_id");
                			$st_studij[$stud_id] = mysql_result($q105,0,0);*/
                if ($oboji == "odsjek" || $studij == -1) {
                    $q105 = myquery("select ss.studij, s.kratkinaziv from student_studij as ss, studij as s where ss.student={$stud_id} and ss.studij!=1 and ss.studij=s.id limit 1");
                    $student_studij[$stud_id] = mysql_result($q105, 0, 0);
                    $student_studij_naziv[$stud_id] = mysql_result($q105, 0, 1);
                }
            }
            // Upit za I i II parcijalni ispit
            if ($ispit == 1 || $ispit == 2) {
                $broj_polozenih = 0;
                foreach ($cache_ispiti as $redni_broj => $id_ispita) {
                    $id_predmeta = $cache_predmeti[$redni_broj];
                    $q100 = myquery("select ocjena from ispitocjene where ispit={$id_ispita} and student={$stud_id}");
                    if (mysql_num_rows($q100) > 0) {
                        $ocjena = mysql_result($q100, 0, 0);
                        $izaslo[$id_predmeta]++;
                        if ($ocjena >= 10) {
                            $polozilo[$id_predmeta]++;
                            $broj_polozenih++;
                        }
                        if ($studenti == 1) {
                            $ispitocjena[$stud_id][$id_predmeta] = $ocjena;
                            $suma_bodova[$stud_id] += $ocjena;
                        }
                    } else {
                        if ($studenti == 1) {
                            $ispitocjena[$stud_id][$id_predmeta] = "/";
                        }
                    }
                }
                $ispita_polozenih[$broj_polozenih]++;
                if ($broj_polozenih > $max_broj_polozenih) {
                    $max_broj_polozenih = $broj_polozenih;
                }
                if ($studenti == 1) {
                    $polozio[$stud_id] = $broj_polozenih;
                }
                // Po ukupnom broju bodova
            } else {
                if ($ispit == 3) {
                    //			$stud_predmeti_ar=array();
                    $broj_polozenih = 0;
                    if ($studij == -1) {
                        $q200 = myquery("select pk.predmet, kb.bodovi from komponentebodovi as kb, ponudakursa as pk where kb.student={$stud_id} and kb.predmet=pk.id {$studij_upit_pk} and pk.akademska_godina={$akgod} and {$semestar_upit}");
                    } else {
                        $q200 = myquery("select pk.predmet, kb.bodovi from komponentebodovi as kb, ponudakursa as pk where kb.student={$stud_id} and kb.predmet=pk.id {$studij_upit_pk} and pk.akademska_godina={$akgod} and {$semestar_upit}");
                    }
                    while ($r200 = mysql_fetch_row($q200)) {
                        $suma_bodova[$stud_id] += $r200[1];
                        $ispitocjena[$stud_id][$r200[0]] += $r200[1];
                        //				array_push($stud_predmeti_ar,$r200[0]);
                    }
                    foreach ($ispitocjena[$stud_id] as $id_predmeta => $m_bodova) {
                        if ($m_bodova >= 40) {
                            $polozilo[$id_predmeta]++;
                            $broj_polozenih++;
                        }
                        $izaslo[$id_predmeta]++;
                    }
                    $ispita_polozenih[$broj_polozenih]++;
                    if ($broj_polozenih > $max_broj_polozenih) {
                        $max_broj_polozenih = $broj_polozenih;
                    }
                    if ($studenti == 1) {
                        $polozio[$stud_id] = $broj_polozenih;
                    }
                    // Konacna ocjena
                } else {
                    if ($ispit == 4) {
                        if ($studij == -1) {
                            $q110 = myquery("select pk.predmet,ko.ocjena from konacna_ocjena as ko, ponudakursa as pk, student_predmet as sp where ko.student={$stud_id} and ko.predmet=pk.predmet and ko.akademska_godina={$akgod} {$studij_upit_pk} and pk.akademska_godina={$akgod} and {$semestar_upit} and sp.student={$stud_id} and sp.predmet=pk.id and ko.odluka IS NULL");
                        } else {
                            $q110 = myquery("select pk.predmet,ko.ocjena from konacna_ocjena as ko, ponudakursa as pk where ko.student={$stud_id} and ko.predmet=pk.predmet and ko.akademska_godina={$akgod} {$studij_upit_pk} and pk.akademska_godina={$akgod} and {$semestar_upit} and ko.odluka IS NULL");
                        }
                        $broj_polozenih = 0;
                        while ($r110 = mysql_fetch_row($q110)) {
                            if ($r110[1] >= 6) {
                                $polozilo[$r110[0]]++;
                                $broj_polozenih++;
                            }
                            if ($studenti == 1) {
                                $ispitocjena[$stud_id][$r110[0]] = $r110[1];
                                $suma_bodova[$stud_id] += $r110[1];
                            }
                        }
                        $ispita_polozenih[$broj_polozenih]++;
                        if ($broj_polozenih > $max_broj_polozenih) {
                            $max_broj_polozenih = $broj_polozenih;
                        }
                        if ($studenti == 1) {
                            $polozio[$stud_id] = $broj_polozenih;
                        }
                        // Niz $izaslo punimo brojem studenata upisanih na predmet
                        if ($studij == -1) {
                            $q120 = myquery("select pk.predmet from student_predmet as sp, ponudakursa as pk where sp.student={$stud_id} and sp.predmet=pk.id and pk.akademska_godina={$akgod} {$studij_upit_pk} and {$semestar_upit}");
                        } else {
                            $q120 = myquery("select pk.predmet from student_predmet as sp, ponudakursa as pk where sp.student={$stud_id} and sp.predmet=pk.id and pk.akademska_godina={$akgod} {$studij_upit_pk} and {$semestar_upit}");
                        }
                        while ($r120 = mysql_fetch_row($q120)) {
                            $izaslo[$r120[0]]++;
                            if ($studenti == 1 && $ispitocjena[$stud_id][$r120[0]] < 6) {
                                // Ako student sluša predmet, a nije ga položio, stavljamo minus
                                $ispitocjena[$stud_id][$r120[0]] = "-";
                            }
                        }
                        // Ima li uslove za usmeni?
                    } else {
                        if ($ispit == 5) {
                            $broj_polozenih = 0;
                            if ($studij == -1) {
                                $q120 = myquery("select pk.predmet, pk.id from student_predmet as sp, ponudakursa as pk where sp.student={$stud_id} and sp.predmet=pk.id and pk.akademska_godina={$akgod} {$studij_upit_pk} and {$semestar_upit}");
                            } else {
                                $q120 = myquery("select pk.predmet, pk.id from student_predmet as sp, ponudakursa as pk where sp.student={$stud_id} and sp.predmet=pk.id and pk.akademska_godina={$akgod} {$studij_upit_pk} and {$semestar_upit}");
                            }
                            while ($r120 = mysql_fetch_row($q120)) {
                                $predmet = $r120[0];
                                $ponudakursa = $r120[1];
                                $izaslo[$predmet]++;
                                $polozenih_komponenti = 0;
                                foreach ($cache_komponente[$predmet] as $komponenta_id => $komponenta_prolaz) {
                                    $q250 = myquery("select bodovi from komponentebodovi where student={$stud_id} and predmet={$ponudakursa} and komponenta={$komponenta_id}");
                                    if (mysql_num_rows($q250) > 0) {
                                        $bodovi = mysql_result($q250, 0, 0);
                                        $ispitocjena[$stud_id][$predmet] += $bodovi;
                                        if ($bodovi >= $komponenta_prolaz) {
                                            $polozenih_komponenti++;
                                        }
                                    } else {
                                        if ($komponenta_prolaz == 0) {
                                            $polozenih_komponenti++;
                                        }
                                    }
                                }
                                if ($polozenih_komponenti == count($cache_komponente[$predmet])) {
                                    $polozilo[$predmet]++;
                                    $broj_polozenih++;
                                }
                            }
                            $ispita_polozenih[$broj_polozenih]++;
                            if ($broj_polozenih > $max_broj_polozenih) {
                                $max_broj_polozenih = $broj_polozenih;
                            }
                            if ($studenti == 1) {
                                $polozio[$stud_id] = $broj_polozenih;
                            }
                        }
                    }
                }
            }
        }
        // Ispis podataka
        if ($studenti == 0) {
            // Ispisujemo samo sumarne podatke
            while ($r30 = mysql_fetch_row($q30)) {
                $naziv = $r30[1];
                if ($r30[2] == 0) {
                    $naziv .= " *";
                }
                ?>
<tr><td><?php 
                echo $naziv;
                ?>
</td>
			<td><?php 
                echo intval($izaslo[$r30[0]]);
                ?>
</td>
			<td><?php 
                echo intval($polozilo[$r30[0]]);
                ?>
</td>
			<td><?php 
                echo procenat($polozilo[$r30[0]], $izaslo[$r30[0]]);
                ?>
</td></tr><?php 
            }
        } else {
            // Sortiranje niza studenata
            if ($sortiranje == 0) {
                // po prezimenu i imenu
                uasort($imeprezime, "bssort");
                // bssort - bosanski jezik
            } else {
                if ($sortiranje == 1) {
                    // po broju bodova i polozenih ispita
                    function tablica_sort($a, $b)
                    {
                        global $polozio, $suma_bodova;
                        if ($polozio[$a] > $polozio[$b]) {
                            return -1;
                        } else {
                            if ($polozio[$a] < $polozio[$b]) {
                                return 1;
                            } else {
                                if ($suma_bodova[$a] > $suma_bodova[$b]) {
                                    return -1;
                                }
                            }
                        }
                        return 1;
                    }
                    uksort($imeprezime, "tablica_sort");
                } else {
                    if ($sortiranje == 2) {
                        // po broju indeksa
                        function indeks_sort($a, $b)
                        {
                            global $brindexa;
                            if (intval($brindexa[$a]) < intval($brindexa[$b])) {
                                return -1;
                            }
                            if (intval($brindexa[$a]) > intval($brindexa[$b])) {
                                return 1;
                            }
                            return 0;
                        }
                        uksort($imeprezime, "indeks_sort");
                    }
                }
            }
            // Ispis redova za studente
            $rbr = 0;
            $oldsuma = -1;
            $oldpolozio = -1;
            foreach ($imeprezime as $stud_id => $imepr) {
                $rbr++;
                // Kod sortiranja po broju bodova,
                // redni broj se ne uvecava ako je broj bodova jednak
                if ($sortiranje == 0 || $oldsuma != $suma_bodova[$stud_id] || $oldpolozio != $polozio[$stud_id]) {
                    $rrbr = $rbr;
                }
                $bgcolor = "#FFFFFF";
                if ($oboji == "odsjek") {
                    if ($student_studij[$stud_id] == 2) {
                        $bgcolor = "#FFCCCC";
                    } else {
                        if ($student_studij[$stud_id] == 3) {
                            $bgcolor = "#CCFFCC";
                        } else {
                            if ($student_studij[$stud_id] == 4) {
                                $bgcolor = "#CCCCFF";
                            } else {
                                if ($student_studij[$stud_id] == 5) {
                                    $bgcolor = "#FFCCFF";
                                }
                            }
                        }
                    }
                }
                ?>
<tr bgcolor="<?php 
                echo $bgcolor;
                ?>
">
				<td><?php 
                echo $rrbr;
                ?>
</td>
				<td><?php 
                echo $imepr;
                ?>
</td>
				<td><?php 
                echo $brindexa[$stud_id];
                ?>
</td><?php 
                if ($studij == -1) {
                    print "<td>" . $student_studij_naziv[$stud_id] . "</td>\n";
                }
                foreach ($kursevi as $kurs_id => $kurs) {
                    if ($ispitocjena[$stud_id][$kurs_id] === NULL) {
                        $ispitocjena[$stud_id][$kurs_id] = "/";
                    }
                    print "<td>" . $ispitocjena[$stud_id][$kurs_id] . "</td>\n";
                }
                print "<td>" . $polozio[$stud_id] . "</td></tr>\n";
                $oldsuma = $suma_bodova[$stud_id];
                $oldpolozio = $polozio[$stud_id];
            }
            // Sumarni podaci na kraju tabele
            print '<tr><td colspan="3" align="right">';
            if ($ispit == 1 || $ispit == 2) {
                print 'PRISTUPILO ISPITU:&nbsp; </td>';
            } else {
                print 'UPISALO PREDMET:&nbsp; </td>';
            }
            if ($studij == -1) {
                print "<td>&nbsp;</td>";
            }
            foreach ($kursevi as $kurs_id => $kurs) {
                print "<td>" . intval($izaslo[$kurs_id]) . "</td>\n";
            }
            print "<td>&nbsp;</td></tr>\n";
            print '<tr><td colspan="3" align="right">POLOŽILO:&nbsp; </td>';
            if ($studij == -1) {
                print "<td>&nbsp;</td>";
            }
            foreach ($kursevi as $kurs_id => $kurs) {
                print "<td>" . intval($polozilo[$kurs_id]) . "</td>\n";
            }
            print "<td>&nbsp;</td></tr>\n";
            print '<tr><td colspan="3" align="right">PROCENAT:&nbsp; </td>';
            if ($studij == -1) {
                print "<td>&nbsp;</td>";
            }
            foreach ($kursevi as $kurs_id => $kurs) {
                print "<td>" . procenat($polozilo[$kurs_id], $izaslo[$kurs_id]) . "</td>\n";
            }
            print "<td>&nbsp;</td></tr>\n";
        }
        // Statistika broja studenata
        print "</table>\n* Predmet je izborni\n\n<br/><br/>{$ispis_br_studenata}<br/><br/>\n";
        // Suma po broju polozenih ispita/predmeta
        if ($ispit == 4) {
            $tekst = "predmeta";
        } else {
            $tekst = "ispita";
        }
        for ($i = $max_broj_polozenih; $i >= 0; $i--) {
            print "Položilo {$i} {$tekst}: <b>" . $ispita_polozenih[$i] . "</b> (" . procenat($ispita_polozenih[$i], $uk_studenata) . ")<br/>\n";
        }
    } else {
        if ($studenti == 0 && $ispit == 3) {
            // Ovo će biti komplikovano....
        } else {
            if ($studenti == 1 && $ispit == 3) {
                // tabela kurseva i studenata
                $kursevi = array();
                $imeprezime = array();
                $brind = array();
                $sirina = 200;
                while ($r30 = mysql_fetch_row($q30)) {
                    $kursevi[$r30[0]] = $r30[1];
                    $q601 = myquery("select s.id, s.ime, s.prezime, s.brindexa from student as s, student_labgrupa as sl, labgrupa as l where sl.student=s.id and sl.labgrupa=l.id and l.predmet={$r30['0']}");
                    while ($r601 = mysql_fetch_row($q601)) {
                        $imeprezime[$r601[0]] = "{$r601['2']} {$r601['1']}";
                        $brind[$r601[0]] = $r601[3];
                    }
                    $sirina += 200;
                }
                uasort($imeprezime, "bssort");
                // bssort - bosanski jezik
                // array zadaća - optimizacija
                $kzadace = array();
                foreach ($kursevi as $kurs_id => $kurs) {
                    $q600a = myquery("select z.id, z.zadataka from zadaca as z, ponudakursa as pk where pk.id={$kurs_id} and pk.predmet=z.predmet and pk.akademska_godina=z.akademska_godina");
                    $tmpzadaca = array();
                    while ($r600a = mysql_fetch_row($q600a)) {
                        $tmpzadaca[$r600a[0]] = $r600a[1];
                    }
                    $kzadace[$kurs_id] = $tmpzadaca;
                }
                ?>
	<table width="<?php 
                echo $sirina;
                ?>
" border="1" cellspacing="0" cellpadding="2">
	<tr>
		<td rowspan="2" valign="center">R. br.</td>
		<td rowspan="2" valign="center">Broj indeksa</td>
		<td rowspan="2" valign="center">Prezime i ime</td>
	<?php 
                foreach ($kursevi as $kurs) {
                    print '<td colspan="6" align="center">' . $kurs . "</td>\n";
                }
                ?>
		<td rowspan="2" valign="center" align="center">UKUPNO</td>
	</tr>
	<tr>
	<?php 
                for ($i = 0; $i < count($kursevi); $i++) {
                    ?>
		<td align="center">I</td>
		<td align="center">II</td>
		<td align="center">Int</td>
		<td align="center">P</td>
		<td align="center">Z</td>
		<td align="center">Ocjena</td>
		<?php 
                }
                print "</tr>\n";
                $rbr = 1;
                // Slušalo / položilo predmet
                $slusalo = array();
                $polozilo = array();
                foreach ($imeprezime as $stud_id => $stud_imepr) {
                    ?>
		<tr>
			<td><?php 
                    echo $rbr++;
                    ?>
</td>
			<td><?php 
                    echo $brind[$stud_id];
                    ?>
</td>
			<td><?php 
                    echo $stud_imepr;
                    ?>
</td>
		<?php 
                    $polozio = 0;
                    foreach ($kursevi as $kurs_id => $kurs) {
                        $slusalo[$kurs_id]++;
                        $q602 = myquery("select io.ocjena,i.komponenta from ispit as i, ispitocjene as io, ponudakursa as pk where io.ispit=i.id and io.student={$stud_id} and i.predmet=pk.predmet and i.akademska_godina=pk.akademska_godina and pk.id={$kurs_id}");
                        $ispit = array();
                        $ispit[1] = $ispit[2] = $ispit[3] = "/";
                        while ($r602 = mysql_fetch_row($q602)) {
                            if ($r602[0] > $ispit[$r602[1]] || $ispit[$r602[1]] == "/") {
                                $ispit[$r602[1]] = $r602[0];
                            }
                        }
                        for ($i = 1; $i < 4; $i++) {
                            if ($ispit[$i] >= 0) {
                                print "<td>{$ispit[$i]}</td>\n";
                            } else {
                                print "<td>&nbsp;</td>\n";
                            }
                        }
                        $q603 = myquery("select count(*) from prisustvo as p,cas as c, labgrupa as l where p.student={$stud_id} and p.cas=c.id and c.labgrupa=l.id and l.predmet={$kurs_id} and p.prisutan=0");
                        if (mysql_result($q603, 0, 0) <= 3) {
                            print "<td>10</td>\n";
                            $ukupno += 10;
                        } else {
                            print "<td>0</td>\n";
                        }
                        $zadaca = 0;
                        foreach ($kzadace[$kurs_id] as $zid => $zadataka) {
                            for ($i = 1; $i <= $zadataka; $i++) {
                                $q605 = myquery("select status,bodova from zadatak where zadaca={$zid} and redni_broj={$i} and student={$stud_id} order by id desc limit 1");
                                if ($r605 = mysql_fetch_row($q605)) {
                                    if ($r605[0] == 5) {
                                        $zadaca += $r605[1];
                                    }
                                }
                                //					$zadaca .= $i." ";
                            }
                        }
                        print "<td>{$zadaca}</td>\n";
                        $q606 = myquery("select ko.ocjena from konacna_ocjena as ko, ponudakursa as pk where ko.student={$stud_id} and ko.predmet=pk.predmet and ko.akademska_godina=pk.akademska_godina and pk.id={$kurs_id}");
                        if (mysql_num_rows($q606) > 0) {
                            $ocj = mysql_result($q606, 0, 0);
                            print "<td>{$ocj}</td>\n";
                            if ($ocj >= 6) {
                                $polozio++;
                            }
                            $polozilo[$kurs_id]++;
                        } else {
                            print "<td>&nbsp;</td>\n";
                        }
                    }
                    print "<td>{$polozio}</td></tr>\n";
                    $i++;
                }
                print '<tr><td colspan="3" align="right">SLUŠALO</td>';
                foreach ($kursevi as $kurs_id => $kurs) {
                    print '<td colspan="5">' . $slusalo[$kurs_id] . "</td>\n";
                }
                print '<td>&nbsp;</td></tr><tr><td colspan="3" align="right">POLOŽILO</td>';
                foreach ($kursevi as $kurs_id => $kurs) {
                    if (intval($polozilo[$kurs_id]) == 0) {
                        $polozilo[$kurs_id] = "0";
                    }
                    print '<td colspan="5">' . $polozilo[$kurs_id] . "</td>\n";
                }
                print '<td>&nbsp;</td></tr><tr><td colspan="3" align="right">PROCENAT</td>';
                foreach ($kursevi as $kurs_id => $kurs) {
                    $proc = intval($polozilo[$kurs_id] / $slusalo[$kurs_id] * 100) / 100;
                    print '<td colspan="5">' . $proc . "%</td>\n";
                }
                print '<td>&nbsp;</td></tr></table>';
            }
        }
    }
}
示例#6
0
function izvjestaj_statistika_predmeta()
{
    global $userid, $user_nastavnik, $user_studentska, $user_siteadmin;
    ?>
<p>Univerzitet u Sarajevu<br/>
Elektrotehnički fakultet Sarajevo</p>
<p>Datum i vrijeme izvještaja: <?php 
    echo date("d. m. Y. H:i");
    ?>
</p>
<?php 
    $predmet = intval($_REQUEST['predmet']);
    $ag = intval($_REQUEST['ag']);
    // akademska godina
    // Provjera permisija
    /*if (!$user_nastavnik && !$user_studentska && !$user_siteadmin) {
    	biguglyerror("Nemate permisije za pristup ovom izvještaju");
    	zamgerlog ("pristup izvjestaju a nije NBA",3); // 3 = error
    	return;
    }*/
    if (!$user_studentska && !$user_siteadmin) {
        $q2 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}");
        if (mysql_num_rows($q2) < 1) {
            biguglyerror("Nemate permisije za pristup ovom izvještaju");
            zamgerlog("nije admin predmeta pp{$predmet}, godina ag{$ag}", 3);
            // 3 = error
            zamgerlog2("nije saradnik na predmetu", $predmet, $ag);
            // 3 = error
            return;
        }
    }
    // Naziv predmeta, akademske godine
    $q10 = myquery("select naziv from predmet where id={$predmet}");
    if (mysql_num_rows($q10) < 1) {
        biguglyerror("Nepoznat predmet");
        zamgerlog("nepoznat predmet {$predmet}", 3);
        zamgerlog2("nepoznat predmet", $predmet);
        return;
    }
    $q12 = myquery("select tippredmeta from akademska_godina_predmet where predmet={$predmet} and akademska_godina={$ag}");
    if (mysql_num_rows($q10) < 1) {
        biguglyerror("Nepoznat predmet");
        zamgerlog("nepoznat predmet {$predmet}", 3);
        zamgerlog2("nije definisan tip predmeta", $predmet, $ag);
        return;
    }
    $tippredmeta = mysql_result($q12, 0, 0);
    $q15 = myquery("select naziv from akademska_godina where id={$ag}");
    if (mysql_num_rows($q15) < 1) {
        biguglyerror("Nepoznata akademska godina");
        zamgerlog("nepoznat akademska godina {$ag}", 3);
        zamgerlog2("nepoznat akademska godina", $ag);
        return;
    }
    ?>
	<p>&nbsp;</p>
	<h1><?php 
    echo mysql_result($q10, 0, 0);
    ?>
 <?php 
    echo mysql_result($q15, 0, 0);
    ?>
</h1>
	<h3>Sumarna statistika za sve ispite</h3>
	<p>(Detaljnije informacije možete dobiti koristeći Puni izvještaj)</p>
<?php 
    // Tijelo izvjestaja
    // Osnovne statistike
    $q30 = myquery("select sp.student from student_predmet as sp, ponudakursa as pk where sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}");
    $slusa_predmet = mysql_num_rows($q30);
    $q40 = myquery("select id from ispit where predmet={$predmet} and akademska_godina={$ag}");
    $odrzano_ispita = mysql_num_rows($q40);
    $upisano_puta = array();
    $maxput = 0;
    $upisano_puta[0] = $upisano_puta[1] = $upisano_puta[3] = $upisano_puta[4] = $upisano_puta[5] = 0;
    // Ako nije održan nijedan ispit, ipak je dobro da vidimo neke stastistike
    //if ($odrzano_ispita>0) {
    // Spisak ispita
    $ispiti = array();
    while ($r40 = mysql_fetch_row($q40)) {
        array_push($ispiti, $r40[0]);
    }
    // Spisak komponenti
    $knazivi = $kprolaz = $ktip = $kpolozilo = $kfalisamo = array();
    $q50 = myquery("select k.id, k.gui_naziv, k.prolaz, k.tipkomponente, k.uslov from komponenta as k, tippredmeta_komponenta as tpk where tpk.tippredmeta={$tippredmeta} and tpk.komponenta=k.id and k.gui_naziv != 'Usmeni'");
    while ($r50 = mysql_fetch_row($q50)) {
        $knazivi[$r50[0]] = $r50[1];
        // k.gui_naziv
        $kprolaz[$r50[0]] = $r50[2];
        // k.prolaz
        $ktip[$r50[0]] = $r50[3];
        // k.tipkomponente
        $kpolozilo[$r50[0]] = 0;
        $kuslov[$r50[0]] = $r50[4];
    }
    // Prolazimo kroz studente
    $uslov40 = $uslov35 = $uslov0 = $nisu_izlazili = $polozilo = $integralno = $usmeni = $puk = 0;
    $uslovkomponente = 0;
    while ($r30 = mysql_fetch_row($q30)) {
        $student = $r30[0];
        $uslovUslov = 1;
        // Da li je polozio predmet?
        $q52 = myquery("select count(*) from konacna_ocjena where student={$student} and predmet={$predmet} and akademska_godina={$ag} and ocjena>5");
        $polozio_predmet = mysql_result($q52, 0, 0);
        if ($polozio_predmet > 0) {
            $polozilo++;
        }
        // Odredjujem ponudukursa
        $q55 = myquery("select pk.id from ponudakursa as pk, student_predmet as sp where sp.student={$student} and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}");
        $ponudakursa = mysql_result($q55, 0, 0);
        // Koliko puta je slusao predmet?
        $q58 = myquery("select count(*) from student_predmet as sp, ponudakursa as pk where sp.student={$student} and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina<{$ag}");
        $puta = intval(mysql_result($q58, 0, 0));
        if ($puta > $maxput) {
            $maxput = $puta;
        }
        $upisano_puta[$puta]++;
        // Komponente
        $sumbodovi = $pao = $izasao = 0;
        $komponente = $polozene_komponente = array();
        foreach ($ktip as $komponenta => $tip) {
            $q60 = myquery("select bodovi from komponentebodovi where student={$student} and predmet={$ponudakursa} and komponenta={$komponenta}");
            if (mysql_num_rows($q60) > 0) {
                $komponente[$komponenta] = 1;
                $bodovi = mysql_result($q60, 0, 0);
                if ($tip == 1 || $tip == 2) {
                    $izasao++;
                }
                if ($kprolaz[$komponenta] == 0) {
                    $kpolozilo[$komponenta]++;
                    $polozene_komponente[$komponenta] = 1;
                } else {
                    if ($bodovi >= $kprolaz[$komponenta]) {
                        $kpolozilo[$komponenta]++;
                        $polozene_komponente[$komponenta] = 1;
                    } else {
                        $pao++;
                        if ($kuslov[$komponenta] == 1) {
                            $uslovUslov = 0;
                        }
                    }
                }
                $sumbodovi += $bodovi;
                // Ako student nije imao bodova, neće postojati zapis u tabeli komponentebodovi
            } else {
                if ($kprolaz[$komponenta] == 0) {
                    // Komponenta ne traži bodove za prolaz
                    $kpolozilo[$komponenta]++;
                    $knemabodova[$komponenta]++;
                    $polozene_komponente[$komponenta] = 1;
                } else {
                    if ($tip != 2) {
                        // tip 2 = integralni ispit
                        $pao++;
                        if ($kuslov[$komponenta] == 1) {
                            $uslovUslov = 0;
                        }
                    }
                }
            }
        }
        // Da li je zadovoljio uslove?
        if ($pao == 0) {
            if ($sumbodovi >= 40) {
                $uslov40++;
            }
            if ($sumbodovi >= 35) {
                $uslov35++;
            }
            if ($uslovUslov == 1) {
                $uslovkomponente++;
            }
            $uslov0++;
            if ($polozio_predmet == 0) {
                $usmeni++;
            }
        } else {
            if ($pao == 1) {
                // Studenti kojima je ostao samo jedan ispit i koji
                if ($polozio_predmet == 0) {
                    foreach ($ktip as $komponenta => $tip) {
                        if ($tip != 1) {
                            continue;
                        }
                        if ($polozene_komponente[$komponenta] != 1) {
                            $kfalisamo[$komponenta]++;
                        }
                    }
                }
                // PUK
            } else {
                if ($sumbodovi < 20) {
                    $puk++;
                } else {
                    if ($polozio_predmet == 0) {
                        $integralno++;
                    }
                }
            }
        }
        // Studenti koji nikada nisu izašli niti na jedan ispit
        if ($izasao == 0) {
            $nisu_izlazili++;
        }
    }
    $stvarno_slusa = $slusa_predmet - $nisu_izlazili;
    //}
    ?>
<p>Ukupno upisalo predmet: <b><?php 
    echo $slusa_predmet;
    ?>
</b> studenata.<br/>
<ul>
<?php 
    for ($i = 0; $i <= $maxput; $i++) {
        if ($upisano_puta[$i] == 0) {
            continue;
        }
        print "<li>" . ($i + 1) . ". put: <b>" . $upisano_puta[$i] . "</b> studenata</li>\n";
    }
    print "</ul>\n";
    if ($odrzano_ispita == 0) {
        ?>
Nije održan nijedan ispit.</p>
	<p>Položilo (konačna ocjena 6 ili više): <b><?php 
        echo $polozilo;
        ?>
</b> studenata (<b><?php 
        echo procenat($polozilo, $slusa_predmet);
        ?>
</b>).</p><?php 
        return;
    } else {
        ?>
	Nije izašlo ni na jedan ispit: <b><?php 
        echo $nisu_izlazili;
        ?>
</b> studenata.<br/>
	Položilo (konačna ocjena 6 ili više): <b><?php 
        echo $polozilo;
        ?>
</b> studenata (<b><?php 
        echo procenat($polozilo, $slusa_predmet);
        ?>
</b>).<br/>
	Zadovoljilo uslove za usmeni *:<br/>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svi ispiti i min. 40 bodova: <b><?php 
        echo $uslov40;
        ?>
</b> studenata (<b><?php 
        echo procenat($uslov40, $slusa_predmet);
        ?>
</b>).<br/>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svi ispiti i min. 35 bodova: <b><?php 
        echo $uslov35;
        ?>
</b> studenata (<b><?php 
        echo procenat($uslov35, $slusa_predmet);
        ?>
</b>).<br/>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svi ispiti: <b><?php 
        echo $uslov0;
        ?>
</b> studenata (<b><?php 
        echo procenat($uslov0, $slusa_predmet);
        ?>
</b>).<br/>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svi uslovni ispiti: <b><?php 
        echo $uslovkomponente;
        ?>
</b> studenata (<b><?php 
        echo procenat($uslovkomponente, $slusa_predmet);
        ?>
</b>).<br/>
	<br/>
	<?php 
        // Komponente
        foreach ($ktip as $komponenta => $tip) {
            if ($kpolozilo[$komponenta] == 0 || $knemabodova[$komponenta] == $slusa_predmet) {
                continue;
            }
            // ova komponenta nije u funkciji
            if ($tip == 1 || $tip == 2) {
                ?>
			Položilo <?php 
                echo $knazivi[$komponenta];
                ?>
 ispit: <b><?php 
                echo $kpolozilo[$komponenta];
                ?>
</b> studenata  (<b><?php 
                echo procenat($kpolozilo[$komponenta], $slusa_predmet);
                ?>
</b>).<br/>
			<?php 
            }
        }
        print "<br/>\n";
        // Ostalo samo
        foreach ($ktip as $komponenta => $tip) {
            if ($kpolozilo[$komponenta] == 0 || $knemabodova[$komponenta] == $slusa_predmet) {
                continue;
            }
            // ova komponenta nije u funkciji
            if ($tip == 1) {
                if ($kfalisamo[$komponenta] == 0) {
                    $kfalisamo[$komponenta] = "0";
                }
                ?>
			Ostao samo <?php 
                echo $knazivi[$komponenta];
                ?>
 ispit: <b><?php 
                echo $kfalisamo[$komponenta];
                ?>
</b> studenata.<br/>
			<?php 
            }
        }
        ?>
	Ostao integralni ispit: <b><?php 
        echo $integralno;
        ?>
</b> studenata.<br/>
	Ostao usmeni ispit**: <b><?php 
        echo $usmeni;
        ?>
</b> studenata.<br/>
	Ponovo upisuje kurs***: <b><?php 
        echo $puk;
        ?>
</b> studenata.<br/>
	</p>

	<p><b>Napomene:</b><br>
	* - Pod "uslov za usmeni" misli se na uobičajenu šemu dva parcijalna ispita + jedan integralni ispit.<br>
	** - Ovaj broj je određen pod pretpostavkom da ne postoji minimalan broj bodova kao uslov za usmeni ispit. Ukoliko postoji takav uslov, profesor posebno definiše na koji način ovi studenti mogu prikupiti preostale potrebne bodove.<br>
	*** - Studenti koji nisu skupili 20 bodova ne mogu pristupiti popravnom ispitu. Ukoliko se ovo pravilo ne odnosi na ovaj predmet, ove studente treba pribrojiti studentima koji izlaze na ispit integralno.</p>
	<?php 
        // DISTRIBUCIJA OCJENA
        $moguce_ocjene = array(6, 7, 8, 9, 10);
        $broj_ocjena = array();
        $uk_broj = 0;
        foreach ($moguce_ocjene as $moguca_ocjena) {
            $q100 = myquery("select count(*) from konacna_ocjena where predmet={$predmet} and akademska_godina={$ag} and ocjena={$moguca_ocjena}");
            $br_ocjena = mysql_result($q100, 0, 0);
            $broj_ocjena[$moguca_ocjena] = $br_ocjena;
            $uk_broj += $br_ocjena;
        }
        if ($uk_broj > 0) {
            ?>
		<h4>Distribucija ocjena</h4>
		<div id="grafik">
			<?php 
            $max_ocjena = max($broj_ocjena);
            ?>
			<div style="width:250px;height:200px;margin:5px;">
				<?php 
            foreach ($broj_ocjena as $oc => $broj) {
                if ($broj == 0) {
                    $broj_pixela_print = 170;
                } else {
                    $broj_pixela = $broj / $max_ocjena * 200;
                    $broj_pixela_print = intval(200 - $broj_pixela);
                }
                ?>
					<div style="width:45px; height:200px; background:green;margin-left:5px;float:left;">
						<div style="width:45px;height:<?php 
                echo $broj_pixela_print;
                ?>
px;background:white;">&nbsp;</div>
						<span style="color:white;font-size: 25px; text-align: center; ">&nbsp;<?php 
                echo $oc;
                ?>
</span>
					</div>	
					<?php 
            }
            ?>
			</div>
			<div style="width:250px;height:200px;margin:5px;">
				<?php 
            foreach ($broj_ocjena as $oc => $broj) {
                ?>
					<div style="width:45px; margin-left:5px; text-align: center; float:left; ">
						<?php 
                echo $broj;
                ?>
 (<?php 
                echo procenat($broj, $uk_broj);
                ?>
)
					</div>
					<?php 
            }
            ?>
			</div>
		</div>
		<?php 
        }
        return;
    }
}
示例#7
0
function izvjestaj_uspjesnost()
{
    ?>
<p>Univerzitet u Sarajevu<br/>
Elektrotehnički fakultet Sarajevo</p>
<p>Datum i vrijeme izvještaja: <?php 
    echo date("d. m. Y. H:i");
    ?>
</p>

<h2>Uspješnost studenata i prosječno trajanje studija</h2>
<?php 
    // Parametar izvještaja
    $studij = intval($_REQUEST['studij']);
    if ($studij == 0) {
        $studij = intval($_REQUEST['_lv_column_studij']);
    }
    $q10 = myquery("SELECT s.naziv, ts.id, ts.trajanje, ts.ects FROM studij as s, tipstudija as ts WHERE s.id={$studij} AND s.tipstudija=ts.id");
    if (mysql_num_rows($q10) < 1) {
        biguglyerror("Nepostojeći studij");
        return;
    }
    $tipstudija = mysql_result($q10, 0, 1);
    $trajanje_studija = mysql_result($q10, 0, 2);
    // u semestrima
    $ects_studija = mysql_result($q10, 0, 2);
    ?>
<h3><?php 
    echo mysql_result($q10, 0, 0);
    ?>
</h3>


<table>
<tr>
	<th>&nbsp;</th>
	<th>Upisalo<br> studij</th>
	<th>Završilo<br> studij</th>
	<th>Još uvijek<br> studira</th>
	<th>Odustalo od<br> studija</th>
	<th>Prosječno trajanje<br>(godina)</th>
</tr>
<?php 
    $q20 = myquery("SELECT ss.student, ss.akademska_godina, ss.semestar, ss.studij FROM student_studij AS ss, studij AS s WHERE ss.studij=s.id AND s.tipstudija={$tipstudija} ORDER BY ss.akademska_godina, ss.semestar");
    $student_pocetna_godina = $student_krajnja_godina = $student_krajnji_semestar = $student_studij = array();
    $maxgodina = 0;
    while ($r20 = mysql_fetch_row($q20)) {
        $student_krajnja_godina[$r20[0]] = $r20[1];
        $student_krajnji_semestar[$r20[0]] = $r20[2];
        if (!isset($student_pocetna_godina[$r20[0]])) {
            $student_pocetna_godina[$r20[0]] = $r20[1];
        }
        $maxgodina = $r20[1];
        $student_studij[$r20[0]] = $r20[3];
        // Zbog promjene odsjeka bitno je u kojoj godini je završio
    }
    $godina_upisalo = $godina_zavrsilo = $godina_studira = $godina_odustalo = $godina_suma_trajanja = array();
    foreach ($student_pocetna_godina as $student => $pocetna_godina) {
        if ($student_studij[$student] != $studij) {
            continue;
        }
        $godina_upisalo[$pocetna_godina]++;
        // Studenti koji su potencijalno završili studij
        if ($student_krajnji_semestar[$student] == $trajanje_studija) {
            // Da bismo odredili da li je student završio studij, provjerićemo da li ima min. 180 ECTS kredita u zbiru
            // Koristimo početnu i krajnju godinu da eliminišemo predmete sa drugog ciklusa
            $q30 = myquery("SELECT SUM(p.ects) FROM predmet AS p, konacna_ocjena AS ko WHERE ko.student={$student} AND ko.predmet=p.id AND ko.akademska_godina>={$pocetna_godina} AND ko.akademska_godina<=" . $student_krajnja_godina[$student]);
            if (mysql_result($q30, 0, 0) >= $ects_studija) {
                $godina_zavrsilo[$pocetna_godina]++;
                $godina_suma_trajanja[$pocetna_godina] += $student_krajnja_godina[$student] - $pocetna_godina + 1;
            } else {
                if ($student_krajnja_godina[$student] == $maxgodina) {
                    $godina_studira[$pocetna_godina]++;
                } else {
                    $godina_odustalo[$pocetna_godina]++;
                }
            }
        } else {
            if ($student_krajnja_godina[$student] == $maxgodina) {
                $godina_studira[$pocetna_godina]++;
            } else {
                $godina_odustalo[$pocetna_godina]++;
            }
        }
    }
    // Ispisujemo tabelu samo za one akademske godine u kojima ima završenih studenata
    $suma_upisalo = $suma_zavrsilo = $suma_studira = $suma_odustalo = $suma_trajanje = 0;
    foreach ($godina_zavrsilo as $godina => $zavrsilo) {
        $prosjecno_trajanje = round($godina_suma_trajanja[$godina] / $zavrsilo, 2);
        $upisalo = $godina_upisalo[$godina];
        // shortcut
        $q40 = myquery("SELECT naziv FROM akademska_godina WHERE id = {$godina}");
        ?>
	<tr>
		<td><?php 
        echo mysql_result($q40, 0, 0);
        ?>
</td>
		<td><?php 
        echo $upisalo;
        ?>
</td>
		<td><?php 
        echo $zavrsilo;
        ?>
 (<?php 
        echo procenat($zavrsilo, $upisalo);
        ?>
)</td>
		<td><?php 
        echo $godina_studira[$godina];
        ?>
 (<?php 
        echo procenat($godina_studira[$godina], $upisalo);
        ?>
)</td>
		<td><?php 
        echo $godina_odustalo[$godina];
        ?>
 (<?php 
        echo procenat($godina_odustalo[$godina], $upisalo);
        ?>
)</td>
		<td><?php 
        echo $prosjecno_trajanje;
        ?>
</td>
	</tr>
	<?php 
        $suma_upisalo += $godina_upisalo[$godina];
        $suma_zavrsilo += $zavrsilo;
        $suma_studira += $godina_studira[$godina];
        $suma_odustalo += $godina_odustalo[$godina];
        $suma_trajanje += $godina_suma_trajanja[$godina];
    }
    $uk_prosjek_trajanja = round($suma_trajanje / $suma_zavrsilo, 2);
    ?>
<tr>
	<td>UKUPNO</td>
	<td><?php 
    echo $suma_upisalo;
    ?>
</td>
	<td><?php 
    echo $suma_zavrsilo;
    ?>
 (<?php 
    echo procenat($suma_zavrsilo, $suma_upisalo);
    ?>
)</td>
	<td><?php 
    echo $suma_studira;
    ?>
 (<?php 
    echo procenat($suma_studira, $suma_upisalo);
    ?>
)</td>
	<td><?php 
    echo $suma_odustalo;
    ?>
 (<?php 
    echo procenat($suma_odustalo, $suma_upisalo);
    ?>
)</td>
	<td><?php 
    echo $uk_prosjek_trajanja;
    ?>
</td>
</tr>
</table>
<?php 
}
示例#8
0
function izvjestaj_termini_ispita()
{
    global $userid, $user_nastavnik, $user_studentska, $user_siteadmin;
    ?>

<p>Univerzitet u Sarajevu<br/>
Elektrotehnički fakultet Sarajevo</p>
<p>Datum i vrijeme izvještaja: <?php 
    echo date("d. m. Y. H:i");
    ?>
</p>
<?php 
    // Parametar
    if (isset($_REQUEST['termin'])) {
        $termin_id_url = intval($_REQUEST['termin']);
    }
    if (isset($_REQUEST['ispit'])) {
        $ispit = intval($_REQUEST['ispit']);
    } else {
        $q8 = myquery("select ispit from ispit_termin where id={$termin_id_url}");
        if (mysql_num_rows($q8) < 1) {
            niceerror("Nepostojeći termin.");
            return;
        }
        $ispit = mysql_result($q8, 0, 0);
    }
    $q9 = myquery("select komponenta from ispit where id={$ispit}");
    if (mysql_num_rows($q9) < 1) {
        niceerror("Nepostojeći ispit.");
        return;
    }
    $komp = mysql_result($q9, 0, 0);
    // Upit za ispit
    if ($komp <= 4) {
        // FIXME Oznake komponente <= 4 se koriste za regularne ispite
        $q10 = myquery("select UNIX_TIMESTAMP(i.datum), k.gui_naziv, i.predmet, i.akademska_godina from ispit as i, komponenta as k where i.id={$ispit} and i.komponenta=k.id");
    } else {
        $q10 = myquery("select UNIX_TIMESTAMP(i.datum), d.naziv, i.predmet, i.akademska_godina from ispit as i, dogadjaj as d where i.id={$ispit} and i.komponenta=d.id");
    }
    $predmet = mysql_result($q10, 0, 2);
    $ag = mysql_result($q10, 0, 3);
    $finidatum = date("d. m. Y.", mysql_result($q10, 0, 0));
    $naziv = mysql_result($q10, 0, 1);
    // Dodatna provjera privilegija
    if (!$user_studentska && !$user_siteadmin) {
        $q20 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}");
        if (mysql_num_rows($q20) < 1) {
            biguglyerror("Nemate permisije za pristup ovom izvještaju");
            zamgerlog("nije admin predmeta pp{$predmet} godina ag{$ag}", 3);
            // 3 = error
            return;
        }
        $privilegija = mysql_result($q20, 0, 0);
    }
    // Cool editing box
    if ($privilegija == "nastavnik" || $privilegija == "super_asistent" || $user_siteadmin) {
        cool_box('ajah_start("index.php?c=N&sta=common/ajah&akcija=izmjena_ispita&idpolja="+zamger_coolbox_origcaller.id+"&vrijednost="+coolboxedit.value, "undo_coolbox()", "zamger_coolbox_origcaller=false");');
        ?>
	<script language="JavaScript">
	function undo_coolbox() {
		var greska = document.getElementById("zamger_ajah-info").innerText || document.getElementById("zamger_ajah-info").textContent;
		alert(greska);
		zamger_coolbox_origcaller.innerHTML = zamger_coolbox_origvalue;
		zamger_coolbox_origcaller=false;
	}
	</script>
	<?php 
    }
    // Naziv predmeta, akademska godina
    $q21 = myquery("select naziv from predmet where id={$predmet}");
    $q22 = myquery("select naziv from akademska_godina where id={$ag}");
    ?>
	<p>&nbsp;</p>
	<h3><?php 
    echo $naziv;
    ?>
, <?php 
    echo $finidatum;
    ?>
</h3>
	<p><?php 
    echo mysql_result($q21, 0, 0);
    ?>
 <?php 
    echo mysql_result($q22, 0, 0);
    ?>
</p>

<?php 
    print ajah_box();
    $imeprezime = $brindexa = array();
    $qtermini = myquery("SELECT it.id,UNIX_TIMESTAMP(it.datumvrijeme)\n\t\t\t\t     FROM ispit_termin it\n\t\t\t\t\t INNER JOIN ispit i ON i.id = it.ispit\n\t\t\t\t\t WHERE i.id={$ispit}\n\t\t\t\t\t ORDER BY it.datumvrijeme\n\t\t\t\t\t");
    $broj_termina = 0;
    if (isset($_REQUEST['termin'])) {
        $termin_id_from_url = intval($_REQUEST['termin']);
        ?>
		<p><a href="?sta=izvjestaj/termini_ispita&termin=<?php 
        echo $termin_id_from_url;
        ?>
">Refresh</a></p>
	<?php 
    } else {
        ?>
		<p><a href="?sta=izvjestaj/termini_ispita&ispit=<?php 
        echo $ispit;
        ?>
">Refresh</a></p>
	<?php 
    }
    while ($rtermini = mysql_fetch_row($qtermini)) {
        $broj_termina++;
        $id_termina = $rtermini[0];
        if (isset($_REQUEST['termin'])) {
            $termin_id_from_url = intval($_REQUEST['termin']);
            if ($termin_id_from_url != $id_termina) {
                continue;
            }
        }
        $datum_termina = date("d. m. Y. ( H:i )", $rtermini[1]);
        if (isset($_REQUEST['ispit'])) {
            $ispit = intval($_REQUEST['ispit']);
        } else {
            $q8 = myquery("select ispit from ispit_termin where id={$termin_id_url}");
            $ispit = mysql_result($q8, 0, 0);
        }
        print "Termin {$broj_termina} : <h4 style=\"display:inline\"> {$datum_termina}</h4><br></br>";
        $q10 = myquery("select o.id, o.prezime, o.ime, o.brindexa \n\t\t\t\t\tfrom osoba as o, student_predmet as sp, ponudakursa as pk, student_ispit_termin sit, ispit_termin it, ispit i\n\t\t\t\t\twhere \n\t\t\t\t\t\tsp.predmet=pk.id \n\t\t\t\t\t\tand sp.student=o.id\n\t\t\t\t\t\tand sit.student=o.id\n\t\t\t\t\t\tand sit.ispit_termin=it.id\n\t\t\t\t\t\tand it.ispit = i.id\n\t\t\t\t\t\tand pk.predmet={$predmet} \n\t\t\t\t\t\tand pk.akademska_godina={$ag}\n\t\t\t\t\t\tand i.id={$ispit}\n\t\t\t\t\t\tand it.id = {$id_termina}\n\t\t\t\t\t\t");
        if (mysql_num_rows($q10) < 1) {
            print "<p>------------------------------------------------------</p>";
            print "<p>Nijedan student nije prijavljen na ovaj termin.</p>";
            print "<p>------------------------------------------------------</p>";
            continue;
        }
        while ($r10 = mysql_fetch_row($q10)) {
            $imeprezime[$r10[0]] = "{$r10['1']} {$r10['2']}";
            $brindexa[$r10[0]] = "{$r10['3']}";
        }
        uasort($imeprezime, "bssort");
        // bssort - bosanski jezik
        // Ima li grupa na predmetu?
        $q27 = myquery("SELECT count(*) FROM labgrupa WHERE predmet={$predmet} AND akademska_godina={$ag} AND virtualna=0");
        if (mysql_result($q27, 0, 0) > 0) {
            $treba_grupe = true;
        } else {
            $treba_grupe = false;
        }
        $broj_ispita = 0;
        $ispit_zaglavlje = "";
        $oldkomponenta = 0;
        $ispit_id_array = array();
        $q30 = myquery("select i.id, UNIX_TIMESTAMP(i.datum), k.id, k.kratki_gui_naziv, k.tipkomponente, k.maxbodova, k.prolaz, k.opcija from ispit as i, komponenta as k where i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=k.id order by i.datum, i.komponenta");
        $imaintegralni = 0;
        while ($r30 = mysql_fetch_row($q30)) {
            $komponenta = $r30[2];
            $imeispita = $r30[3];
            $tipkomponente = $r30[4];
            $ispit_zaglavlje .= "<td align=\"center\">{$imeispita}<br/> " . date("d.m.", $r30[1]) . "</td>\n";
            $broj_ispita++;
            $ispit_id_array[] = $r30[0];
            $ispit_komponenta[$r30[0]] = $r30[2];
            // Pripremamo podatke o komponentama
            $komponenta_tip[$r30[2]] = $r30[4];
            $komponenta_maxb[$r30[2]] = $r30[5];
            $komponenta_prolaz[$r30[2]] = $r30[6];
            $komponenta_opcija[$r30[2]] = "{$r30['7']}";
        }
        // Racunamo koliko je bilo moguce ostvariti bodova na predmetu (radi racunanja procenta)
        $mogucih_bodova = 0;
        foreach ($komponenta_maxb as $kid => $kmb) {
            if ($komponenta_tip[$kid] != 2 || $imaintegralni == 1 && $broj_ispita < 2) {
                // osim ako je to jedini ispit
                $mogucih_bodova += $kmb;
            }
        }
        // Ostale komponente cemo sabrati nesto kasnije...
        // Za slucaj da prof odrzi integralni bez parcijalnih
        if ($imaintegralni == 1 && $broj_ispita < 2) {
            // $razvdoji_ispite=1; goto // Zaglavlje tabele ispita
            // no php ne podržava goto :(
            $broj_ispita = 2;
            // Ovo ce i dalje biti deformisano, ali nesto manje deformisano nego ranije
        }
        // SPISAK KOMPONENTI KOJE NISU ISPITI
        $ostale_komponente = array();
        // 1 = parcijalni ispit, 2 = integralni ispit
        $q40 = myquery("select k.id, k.kratki_gui_naziv, k.tipkomponente, k.maxbodova from komponenta as k, akademska_godina_predmet as agp, tippredmeta_komponenta as tpk where agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente!=1 and k.tipkomponente!=2 and agp.akademska_godina={$ag}");
        while ($r40 = mysql_fetch_row($q40)) {
            $mogucih_bodova += $r40[3];
            $ostale_komponente[$r40[0]] = $r40[1];
        }
        $zaglavlje1 = $zaglavlje2 = "";
        // Dva reda zaglavlja tabele
        // Ostale komponente
        foreach ($ostale_komponente as $kid => $knaziv) {
            $zaglavlje1 .= "<td rowspan=\"2\" align=\"center\">{$knaziv}</td>\n";
        }
        ?>
	<table border="1" cellspacing="0" cellpadding="2">
		<tr><td rowspan="2" align="center">R.br.</td>
			<td rowspan="2" align="center">Prezime i ime</td>
			<td rowspan="2" align="center">Br. indexa</td>
			<?php 
        if ($treba_grupe) {
            ?>
<td rowspan="2" align="center">Grupa</td><?php 
        }
        ?>
			<?php 
        echo $zaglavlje1;
        ?>
			<td align="center" <?php 
        if ($broj_ispita == 0) {
            ?>
 rowspan="2" <?php 
        } else {
            ?>
 colspan="<?php 
            echo $broj_ispita;
            ?>
" <?php 
        }
        ?>
>Ispiti</td>
			<td rowspan="2" align="center"><b>UKUPNO</b></td>
			<td rowspan="2" align="center">Konačna<br/>ocjena</td>
		</tr>
		<tr>
			<?php 
        echo $zaglavlje2;
        ?>
			<?php 
        echo $ispit_zaglavlje;
        ?>
		</tr>
		<?php 
        // ------ SPISAK STUDENATA ------
        $idovi = array_keys($imeprezime);
        // Petlja za ispis studenata
        $redni_broj = 0;
        foreach ($imeprezime as $stud_id => $stud_imepr) {
            if (!in_array($stud_id, $idovi)) {
                continue;
            }
            unset($imeprezime[$stud_id]);
            // Vise se nece javljati
            $redni_broj++;
            ?>
		<tr>
			<td><?php 
            echo $redni_broj;
            ?>
.</td>
			<td><?php 
            echo $stud_imepr;
            ?>
</td>
			<td><?php 
            echo $brindexa[$stud_id];
            ?>
</td>
			<?php 
            if ($treba_grupe) {
                $q220 = myquery("SELECT l.naziv FROM labgrupa as l, student_labgrupa as sl WHERE l.predmet={$predmet} AND l.akademska_godina={$ag} AND l.virtualna=0 AND l.id=sl.labgrupa AND sl.student={$stud_id}");
                if (mysql_num_rows($q220) == 0) {
                    $grupa = "&nbsp;";
                } else {
                    $grupa = mysql_result($q220, 0, 0);
                }
                ?>
			<td><?php 
                echo $grupa;
                ?>
</td>
			<?php 
            }
            $ispis = "";
            $bodova = 0;
            // Zbir bodova koje je student ostvario
            // OSTALE KOMPONENTE
            foreach ($ostale_komponente as $kid => $knaziv) {
                $q230 = myquery("select kb.bodovi from komponentebodovi as kb, ponudakursa as pk where kb.student={$stud_id} and kb.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} and kb.komponenta={$kid}");
                $obodova = 0;
                if (mysql_num_rows($q230) > 0) {
                    $obodova = mysql_result($q230, 0, 0);
                }
                $ispis .= "<td>{$obodova}</td>";
                $bodova += $obodova;
            }
            // ISPITI
            if ($broj_ispita == 0) {
                $ispis .= "<td>&nbsp;</td>";
            }
            $komponente = $kmax = $kispis = array();
            foreach ($ispit_id_array as $ispit) {
                $k = $ispit_komponenta[$ispit];
                $q230 = myquery("select ocjena from ispitocjene where ispit={$ispit} and student={$stud_id}");
                if (mysql_num_rows($q230) > 0) {
                    $ocjena = mysql_result($q230, 0, 0);
                    $ispis .= "<td align=\"center\" id=\"ispit-{$stud_id}-{$ispit}\" ondblclick=\"coolboxopen(this)\">{$ocjena}</td>\n";
                    if (!in_array($k, $komponente) || $ocjena > $kmax[$k]) {
                        $kmax[$k] = $ocjena;
                        $kispis[$k] = "<td align=\"center\" id=\"ispit-{$stud_id}-{$ispit}\" ondblclick=\"coolboxopen(this)\">{$ocjena}</td>\n";
                    }
                } else {
                    $ispis .= "<td align=\"center\" id=\"ispit-{$stud_id}-{$ispit}\" ondblclick=\"coolboxopen(this)\">/</td>\n";
                    if ($kispis[$k] == "") {
                        $kispis[$k] = "<td align=\"center\" id=\"ispit-{$stud_id}-{$ispit}\" ondblclick=\"coolboxopen(this)\">/</td>\n";
                    }
                }
                if (!in_array($k, $komponente)) {
                    $komponente[] = $k;
                }
            }
            // Prvo trazimo integralne ispite
            foreach ($komponente as $k) {
                if ($komponenta_tip[$k] == 2) {
                    // Koje parcijalne ispite obuhvata integralni
                    $dijelovi = explode("+", $komponenta_opcija[$k]);
                    // Racunamo zbir
                    $zbir = 0;
                    $pao = 0;
                    foreach ($dijelovi as $dio) {
                        $zbir += $kmax[$dio];
                        if ($kmax[$dio] < $komponenta_prolaz[$dio]) {
                            $pao = 1;
                        }
                    }
                    // Eliminisemo parcijalne obuhvacene integralnim
                    if ($kmax[$k] > $zbir || $pao == 1 && $kmax[$k] >= $komponenta_prolaz[$k]) {
                        $bodova += $kmax[$k];
                        foreach ($dijelovi as $dio) {
                            $kmax[$dio] = 0;
                            $kispis[$dio] = "";
                        }
                        $kispis[$k] = "<td align=\"center\" colspan=\"" . count($dijelovi) . "\">" . $kmax[$k] . "</td>\n";
                    } else {
                        $kispis[$k] = "";
                    }
                }
            }
            // Sabiremo preostale parcijalne ispite na sumu bodova
            foreach ($komponente as $k) {
                if ($komponenta_tip[$k] != 2) {
                    $bodova += $kmax[$k];
                }
            }
            // STATISTIKE
            $topscore[$stud_id] = $bodova;
            print $ispis;
            print "<td align=\"center\">{$bodova} (" . procenat($bodova, $mogucih_bodova) . ")</td>\n";
            // Konacna ocjena
            $q508 = myquery("select ocjena from konacna_ocjena where student={$stud_id} and predmet={$predmet} and akademska_godina={$ag}");
            if (mysql_num_rows($q508) > 0) {
                print "<td id=\"ko-{$stud_id}-{$predmet}-{$ag}\" ondblclick=\"coolboxopen(this)\">" . mysql_result($q508, 0, 0) . "</td>\n";
            } else {
                print "<td id=\"ko-{$stud_id}-{$predmet}-{$ag}\" ondblclick=\"coolboxopen(this)\">/</td>\n";
            }
            print "</tr>\n";
        }
        print "</table><p>&nbsp;</p>";
    }
    ?>

<?php 
}
示例#9
0
function nastavnik_kvizovi()
{
    global $userid, $user_siteadmin;
    global $_lv_;
    // Parametri
    $predmet = intval($_REQUEST['predmet']);
    $ag = intval($_REQUEST['ag']);
    // Naziv predmeta
    $q5 = myquery("select naziv from predmet where id={$predmet}");
    if (mysql_num_rows($q5) < 1) {
        biguglyerror("Nepoznat predmet");
        zamgerlog("ilegalan predmet {$predmet}", 3);
        //nivo 3: greska
        zamgerlog2("nepoznat predmet", $predmet);
        return;
    }
    $predmet_naziv = mysql_result($q5, 0, 0);
    // Da li korisnik ima pravo ući u modul?
    if (!$user_siteadmin) {
        $q10 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}");
        if (mysql_num_rows($q10) < 1 || mysql_result($q10, 0, 0) == "asistent") {
            zamgerlog("nastavnik/ispiti privilegije (predmet pp{$predmet})", 3);
            zamgerlog2("nije nastavnik na predmetu", $predmet, $ag);
            biguglyerror("Nemate pravo pristupa ovoj opciji");
            return;
        }
    }
    ?>

<p>&nbsp;</p>

<p><h3><?php 
    echo $predmet_naziv;
    ?>
 - Kvizovi</h3></p>

<p>Napomena: Ovaj modul je još uvijek u fazi razvoja i nije dovoljno testiran. Ne preporučujemo njegovo korištenje.</p>

<?php 
    // Akcija - editovanje pitanja
    if ($_REQUEST['akcija'] == "pitanja") {
        $kviz = intval($_REQUEST['kviz']);
        $q200 = myquery("select naziv, predmet, akademska_godina from kviz where id={$kviz}");
        if (mysql_num_rows($q200) < 1) {
            niceerror("Nepostojeći kviz {$kviz}");
            zamgerlog("editovanje pitanja: nepostojeci kviz {$kviz}", 3);
            zamgerlog2("nepostojeci kviz (editovanje pitanja)", $kviz);
            return;
        }
        if (mysql_result($q200, 0, 1) != $predmet || mysql_result($q200, 0, 2) != $ag) {
            niceerror("Kviz nije sa ovog predmeta");
            zamgerlog("editovanje pitanja: kviz {$kviz} nije sa predmeta pp{$predmet} ag{$ag}", 3);
            zamgerlog2("id kviza i predmeta se ne poklapaju (editovanje pitanja)", $predmet, $ag, $kviz);
            return;
        }
        $naziv_kviza = mysql_result($q200, 0, 0);
        // Subakcije
        if ($_REQUEST['subakcija'] == "potvrda_novo" && check_csrf_token()) {
            $tekst = my_escape($_REQUEST['tekst']);
            $bodova = floatval(str_replace(',', '.', $_REQUEST['bodova']));
            if ($_REQUEST['vidljivo']) {
                $vidljivo = 1;
            } else {
                $vidljivo = 0;
            }
            $tip = my_escape($_REQUEST['tip']);
            $q300 = myquery("insert into kviz_pitanje set kviz={$kviz}, tip='{$tip}', tekst='{$tekst}', bodova={$bodova}, vidljivo={$vidljivo}");
            $pitanje = mysql_insert_id();
            // Ako je korisnik unosio odgovore prije kreiranja pitanja, njihov id pitanja je 0
            $q315 = myquery("update kviz_odgovor set kviz_pitanje={$pitanje} where kviz_pitanje=0");
            nicemessage("Pitanje uspješno dodano");
            zamgerlog2("dodano pitanje na kviz", $pitanje);
            ?>
		<script language="JavaScript">
		location.href='?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja&subakcija=izmijeni&pitanje=<?php 
            echo $pitanje;
            ?>
';
		</script>
		<?php 
            return;
        }
        if ($_REQUEST['subakcija'] == "potvrda_izmjene" && check_csrf_token()) {
            $pitanje = intval($_REQUEST['pitanje']);
            $tekst = my_escape($_REQUEST['tekst']);
            $bodova = floatval(str_replace(',', '.', $_REQUEST['bodova']));
            if ($_REQUEST['vidljivo']) {
                $vidljivo = 1;
            } else {
                $vidljivo = 0;
            }
            $tip = my_escape($_REQUEST['tip']);
            $q320 = myquery("select kviz from kviz_pitanje where id={$pitanje}");
            if (mysql_num_rows($q320) == 0) {
                niceerror("Pitanje je obrisano!");
                zamgerlog("potvrda editovanja pitanja: pitanje {$pitanje} ne postoji", 3);
                zamgerlog2("pitanje na kvizu ne postoji (potvrda editovanja)", $pitanje);
                return;
            }
            if (mysql_result($q320, 0, 0) != $kviz) {
                niceerror("Pitanje nije sa ovog kviza");
                zamgerlog("potvrda editovanja pitanja: pitanje {$pitanje} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3);
                zamgerlog2("id pitanja i kviza se ne poklapaju (potvrda editovanja)", $pitanje, $kviz);
                return;
            }
            $q330 = myquery("update kviz_pitanje set tekst='{$tekst}', tip='{$tip}', bodova={$bodova}, vidljivo={$vidljivo} where id={$pitanje}");
            nicemessage("Pitanje uspješno izmijenjeno");
            zamgerlog2("izmijenjeno pitanje na kvizu", $pitanje);
            ?>
		<script language="JavaScript">
		location.href='?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja&subakcija=izmijeni&pitanje=<?php 
            echo $pitanje;
            ?>
';
		</script>
		<?php 
            return;
        }
        if ($_REQUEST['subakcija'] == "obrisi") {
            // brisanje pitanja - ovdje ce nam trebati potvrda!
            $pitanje = intval($_REQUEST['pitanje']);
            $q320 = myquery("select kviz from kviz_pitanje where id={$pitanje}");
            if (mysql_num_rows($q320) == 0) {
                niceerror("Pitanje je već obrisano!");
                zamgerlog("potvrda brisanja pitanja: pitanje {$pitanje} ne postoji", 3);
                zamgerlog2("pitanje ne postoji (potvrda brisanja)", $pitanje);
                return;
            }
            if (mysql_result($q320, 0, 0) != $kviz) {
                niceerror("Pitanje nije sa ovog kviza");
                zamgerlog("potvrda brisanja pitanja: pitanje {$pitanje} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3);
                zamgerlog2("id pitanja i kviza se ne poklapaju (potvrda brisanja)", $pitanje, $kviz);
                return;
            }
            $q335 = myquery("delete from kviz_odgovor where kviz_pitanje={$pitanje}");
            $q336 = myquery("delete from kviz_pitanje where id={$pitanje}");
            nicemessage("Pitanje uspješno obrisano");
            zamgerlog2("obrisano pitanje sa kviza", $kviz, $pitanje);
            ?>
		<script language="JavaScript">
		location.href='?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja';
		</script>
		<?php 
            return;
        }
        if ($_REQUEST['subakcija'] == "dodaj_odgovor" && check_csrf_token()) {
            $pitanje = intval($_REQUEST['pitanje']);
            $tekst = my_escape($_REQUEST['tekst']);
            if ($_REQUEST['tacan']) {
                $tacan = 1;
            } else {
                $tacan = 0;
            }
            if ($pitanje > 0) {
                $q320 = myquery("select kviz from kviz_pitanje where id={$pitanje}");
                if (mysql_num_rows($q320) == 0 || mysql_result($q320, 0, 0) != $kviz) {
                    niceerror("Pitanje nije sa ovog kviza");
                    zamgerlog("dodavanje odgovora: pitanje {$pitanje} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3);
                    zamgerlog2("id pitanja i kviza se ne poklapaju (dodavanje odgovora)", $pitanje, $kviz);
                    return;
                }
            }
            $q340 = myquery("insert into kviz_odgovor set kviz_pitanje={$pitanje}, tekst='{$tekst}', tacan={$tacan}");
            nicemessage("Odgovor uspješno dodan");
            zamgerlog2("dodan odgovor na pitanje", mysql_insert_id());
            if ($pitanje > 0) {
                ?>
			<script language="JavaScript">
			location.href='?sta=nastavnik/kvizovi&predmet=<?php 
                echo $predmet;
                ?>
&ag=<?php 
                echo $ag;
                ?>
&kviz=<?php 
                echo $kviz;
                ?>
&akcija=pitanja&subakcija=izmijeni&pitanje=<?php 
                echo $pitanje;
                ?>
';
			</script>
			<?php 
            } else {
                ?>
			<script language="JavaScript">
			location.href='?sta=nastavnik/kvizovi&predmet=<?php 
                echo $predmet;
                ?>
&ag=<?php 
                echo $ag;
                ?>
&kviz=<?php 
                echo $kviz;
                ?>
&akcija=pitanja';
			</script>
			<?php 
            }
            return;
        }
        if ($_REQUEST['subakcija'] == "obrisi_odgovor") {
            // && check_csrf_token()) {
            $odgovor = intval($_REQUEST['odgovor']);
            $q350 = myquery("select kp.kviz, kp.id from kviz_pitanje as kp, kviz_odgovor as ko where ko.id={$odgovor} and ko.kviz_pitanje=kp.id");
            if (mysql_num_rows($q350) == 0) {
                // Moguće da je odgovor dat prije pitanja
                $q355 = myquery("select kviz_pitanje from kviz_odgovor where id={$odgovor}");
                if (mysql_num_rows($q355) == 0) {
                    niceerror("Odgovor je već obrisan!");
                    zamgerlog("brisanje odgovora: odgovor {$odgovor} ne postoji", 3);
                    zamgerlog2("odgovor ne postoji (brisanje odgovora)", $odgovor);
                    return;
                }
            } else {
                if (mysql_result($q350, 0, 0) != $kviz) {
                    niceerror("Odgovor ne postoji ili pitanje nije sa ovog kviza");
                    zamgerlog("brisanje odgovora: odgovor {$odgovor} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3);
                    zamgerlog2("id odgovora i kviza se ne poklapaju (brisanje odgovora)", $odgovor, $kviz);
                    return;
                }
            }
            $q360 = myquery("delete from kviz_odgovor where id={$odgovor}");
            nicemessage("Odgovor uspješno obrisan");
            $dodaj = "";
            if (mysql_num_rows($q350) != 0) {
                $dodaj = "&subakcija=izmijeni&pitanje=" . mysql_result($q350, 0, 1);
            }
            zamgerlog2("obrisan odgovor sa kviza", $odgovor, $kviz);
            ?>
		<script language="JavaScript">
		location.href='?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja<?php 
            echo $dodaj;
            ?>
';
		</script>
		<?php 
            return;
        }
        if ($_REQUEST['subakcija'] == "toggle_tacnost") {
            // && check_csrf_token()) {
            $odgovor = intval($_REQUEST['odgovor']);
            $q370 = myquery("select kp.kviz, kp.id, ko.tacan from kviz_pitanje as kp, kviz_odgovor as ko where ko.id={$odgovor} and ko.kviz_pitanje=kp.id");
            if (mysql_num_rows($q370) == 0 || mysql_result($q370, 0, 0) != $kviz) {
                niceerror("Odgovor ne postoji ili pitanje nije sa ovog kviza");
                zamgerlog("toggle tacnost: odgovor {$odgovor} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3);
                zamgerlog2("id odgovora i kviza se ne poklapaju (toggle tacnosti)", $odgovor, $kviz);
                return;
            }
            if (mysql_result($q370, 0, 2) == 1) {
                $tacan = 0;
            } else {
                $tacan = 1;
            }
            $q380 = myquery("update kviz_odgovor set tacan={$tacan} where id={$odgovor}");
            nicemessage("Odgovor proglašen za (ne)tačan");
            zamgerlog2("odgovor proglasen za (ne)tacan", $odgovor, $tacan);
            ?>
		<script language="JavaScript">
		location.href='?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja&subakcija=izmijeni&pitanje=<?php 
            echo mysql_result($q370, 0, 1);
            ?>
';
		</script>
		<?php 
            return;
        }
        if ($_REQUEST['subakcija'] == "kopiraj_pitanja" && check_csrf_token()) {
            $drugi_kviz = intval($_REQUEST['_lv_column_kviz']);
            $q740 = myquery("SELECT naziv FROM kviz WHERE id={$drugi_kviz}");
            // Dozvoljavamo kopiranje sa kviza sa drugog predmeta!?
            if (mysql_num_rows($q740) == 0) {
                niceerror("Nepoznat kviz");
                zamgerlog2("nepoznat ID kviza", $drugi_kviz);
                return;
            }
            $q700 = myquery("SELECT id, tip, tekst, bodova, vidljivo FROM kviz_pitanje WHERE kviz={$drugi_kviz}");
            while ($r700 = mysql_fetch_row($q700)) {
                $staro_pitanje = $r700[0];
                $tekst = mysql_real_escape_string($r700[2]);
                $q710 = myquery("INSERT INTO kviz_pitanje SET kviz={$kviz}, tip='{$r700['1']}', tekst='{$tekst}', bodova={$r700['3']}, vidljivo={$r700['4']}");
                $novo_pitanje = mysql_insert_id();
                // Kreiranje odgovora na pitanje
                $q720 = myquery("SELECT tekst, tacan, vidljiv FROM kviz_odgovor WHERE kviz_pitanje={$staro_pitanje}");
                while ($r720 = mysql_fetch_row($q720)) {
                    $tekst = mysql_real_escape_string($r720[0]);
                    $q730 = myquery("INSERT INTO kviz_odgovor SET kviz_pitanje={$novo_pitanje}, tekst='{$tekst}', tacan={$r720['1']}, vidljiv={$r720['2']}");
                }
            }
            nicemessage("Prekopirana pitanja sa kviza");
            zamgerlog2("prekopirana pitanja sa kviza", $kviz, $drugi_kviz);
            ?>
		<script language="JavaScript">
		location.href='?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja';
		</script>
		<?php 
            return;
        }
        ?>
	<h3>Izmjena pitanja za kviz "<?php 
        echo $naziv_kviza;
        ?>
"</h3>
	<a href="?sta=nastavnik/kvizovi&predmet=<?php 
        echo $predmet;
        ?>
&ag=<?php 
        echo $ag;
        ?>
&_lv_nav_id=<?php 
        echo $kviz;
        ?>
">Nazad na podešavanje parametara kviza</a><br><br>
	<table border="0" cellspacing="1" cellpadding="2">
	<tr bgcolor="#999999">
		<td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">R.br.</font></td>
		<td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Tekst pitanja</font></td>
		<td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Odgovori</font></td>
		<td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Bodova</font></td>
		<td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Vidljivo?</font></td>
		<td>&nbsp;</td>
	</tr>
	<?php 
        $rbr = 0;
        $q210 = myquery("select id, tip, tekst, bodova, vidljivo from kviz_pitanje where kviz={$kviz}");
        while ($r210 = mysql_fetch_row($q210)) {
            // Pribavljamo odgovore
            $odgovori = "";
            $q220 = myquery("select tekst, tacan from kviz_odgovor where kviz_pitanje={$r210['0']} order by tacan desc");
            if (mysql_num_rows($q220) < 1) {
                $odgovori = "<font color=\"red\">Nema ponuđenih odgovora</font>";
            }
            $broj_tacnih = 0;
            while ($r220 = mysql_fetch_row($q220)) {
                $odgovori .= "'{$r220['0']}'";
                if ($r220[1] == 1) {
                    $odgovori .= " (*)";
                    $broj_tacnih++;
                }
                $odgovori .= ", ";
            }
            if (mysql_num_rows($q220) > 0 && $broj_tacnih == 0) {
                $odgovori = "<font color=\"red\">Nije ponuđen tačan odgovor</font><br>\n" . $odgovori;
            } else {
                if (mysql_num_rows($q220) > 0 && $r210[1] == 'mcma' && $broj_tacnih == 1) {
                    $odgovori = "<font color=\"red\">Ponuđen je samo jedan tačan odgovor</font><br>\n" . $odgovori;
                }
            }
            $vidljivo = "NE";
            if ($r210[4] == 1) {
                $vidljivo = "DA";
            }
            $rbr++;
            ?>
		<tr>
			<td><?php 
            echo $rbr;
            ?>
</td>
			<td><?php 
            echo $r210[2];
            ?>
</td>
			<td><?php 
            echo $odgovori;
            ?>
</td>
			<td><?php 
            echo $r210[3];
            ?>
</td>
			<td><?php 
            echo $vidljivo;
            ?>
</td>
			<td><a href="?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja&subakcija=obrisi&pitanje=<?php 
            echo $r210[0];
            ?>
">Obriši</a> *
			<a href="?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja&subakcija=izmijeni&pitanje=<?php 
            echo $r210[0];
            ?>
">Izmijeni</a></td>
		</tr>
		<?php 
        }
        print "</table>\n<br><br>\n";
        if (mysql_num_rows($q210) == 0) {
            print genform("POST");
            ?>
		<input type="hidden" name="subakcija" value="kopiraj_pitanja">
		<p>Kopiraj pitanja sa kviza:<?php 
            $_lv_["where:predmet"] = $predmet;
            $_lv_["where:akademska_godina"] = $ag;
            print db_dropdown("kviz");
            ?>
		<input type="submit" value=" Kreni ">
		</p></form><?php 
        }
        if ($_REQUEST['subakcija'] == "izmijeni") {
            ?>
		<a href="?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja">Dodaj novo pitanje</a><br><br>
		
		<a name="izmjena"></a>
		<b>Izmjena pitanja</b><br>
		<?php 
            $pitanje = intval($_REQUEST['pitanje']);
            $q230 = myquery("select kviz, tip, tekst, bodova, vidljivo from kviz_pitanje where id={$pitanje}");
            if (mysql_num_rows($q230) < 1) {
                niceerror("Nepostojeće pitanje {$pitanje}");
                zamgerlog("editovanje pitanja: nepostojece pitanje {$pitanje}", 3);
                zamgerlog2("nepostojece pitanje (editovanje pitanja)", $pitanje);
                return;
            }
            if (mysql_result($q230, 0, 0) != $kviz) {
                niceerror("Pitanje nije sa ovog kviza");
                zamgerlog("editovanje pitanja: pitanje {$pitanje} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3);
                zamgerlog2("id pitanja i kviza se ne poklapaju (editovanje pitanja)", $pitanje, $kviz);
                return;
            }
            $tip = mysql_result($q230, 0, 1);
            $tekst = mysql_result($q230, 0, 2);
            $bodova = mysql_result($q230, 0, 3);
            if (mysql_result($q230, 0, 4) == 1) {
                $vidljivo = "CHECKED";
            } else {
                $vidljivo = "";
            }
            $subakcija = "potvrda_izmjene";
        } else {
            print "<b>Dodajte novo pitanje</b><br>\n";
            $tekst = $vidljiv = "";
            $bodova = $pitanje = 0;
            $tip = "mcsa";
            $subakcija = "potvrda_novo";
        }
        unset($_REQUEST['subakcija']);
        unset($_GET['subakcija']);
        ?>
	<?php 
        echo genform("POST");
        ?>
	<input type="hidden" name="subakcija" value="<?php 
        echo $subakcija;
        ?>
">
	<input type="hidden" name="pitanje" value="<?php 
        echo $pitanje;
        ?>
">
	<table border="0">
		<tr><td>Tekst pitanja:</td><td><input type="text" size="50" name="tekst" value="<?php 
        echo $tekst;
        ?>
"></td></tr>
		<tr><td>Bodova:</td><td><input type="text" size="5" name="bodova" value="<?php 
        echo $bodova;
        ?>
"></td></tr>
		<tr><td>Tip pitanja:</td><td>
			<select name="tip">
				<option value="mcsa" <?php 
        if ($tip == "mcsa") {
            print "SELECTED";
        }
        ?>
>MCSA</option>
				<option value="mcma" <?php 
        if ($tip == "mcma") {
            print "SELECTED";
        }
        ?>
>MCMA</option>
				<option value="tekstualno" <?php 
        if ($tip == "tekstualno") {
            print "SELECTED";
        }
        ?>
>Tekstualno</option>
			</select>
			<a href="#" onclick="javascript:window.open('legenda-pitanja.html','blah6','width=320,height=300');">Legenda tipova pitanja</a>
		</td></tr>
		<tr><td align="right"><input type="checkbox" name="vidljivo" value="1" <?php 
        echo $vidljivo;
        ?>
></td><td>Pitanje vidljivo</td></tr>
	</table>
	<br>Ponuđeni odgovori:<br>
	<ul>
	<?php 
        $q240 = myquery("select id, tekst, tacan, vidljiv from kviz_odgovor where kviz_pitanje={$pitanje}");
        if (mysql_num_rows($q240) == 0) {
            print "<li>Do sada nije unesen nijedan odgovor</li>\n";
        }
        while ($r240 = mysql_fetch_row($q240)) {
            print "<li>";
            if ($r240[3] == 0) {
                print "<font color=\"#AAAAAA\">";
            }
            print $r240[1];
            if ($r240[2] == 1) {
                print " (TAČAN)";
                $toggle_link = "Proglasi za netačan";
            } else {
                $toggle_link = "Proglasi za tačan";
            }
            if ($r240[3] == 0) {
                print "</font> - nevidljiv";
            }
            ?>
 - <a href="?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja&subakcija=obrisi_odgovor&odgovor=<?php 
            echo $r240[0];
            ?>
">Obriši</a>
		- <a href="?sta=nastavnik/kvizovi&predmet=<?php 
            echo $predmet;
            ?>
&ag=<?php 
            echo $ag;
            ?>
&kviz=<?php 
            echo $kviz;
            ?>
&akcija=pitanja&subakcija=toggle_tacnost&odgovor=<?php 
            echo $r240[0];
            ?>
"><?php 
            echo $toggle_link;
            ?>
</a></li>
		<?php 
        }
        ?>
	</ul>
	<input type="submit" value="Promjena pitanja"><br>
	</form>
	<br>
	Dodajte odgovor na ovo pitanje:<br>
	<?php 
        echo genform("POST");
        ?>
	<input type="hidden" name="subakcija" value="dodaj_odgovor">
	<input type="hidden" name="pitanje" value="<?php 
        echo $pitanje;
        ?>
">
	Tekst odgovora: <input type="text" name="tekst" size="50"><br>
	<input type="checkbox" name="tacan" value="1"> Tačan<br>
	<input type="submit" value="Dodaj"><br>
	</form>
	<?php 
        return;
    }
    // Akcija - statistički pregled rezultata kviza
    if ($_REQUEST['akcija'] == "rezultati") {
        $kviz = intval($_REQUEST['kviz']);
        $q600 = myquery("select naziv, predmet, akademska_godina, broj_pitanja, prolaz_bodova from kviz where id={$kviz}");
        if (mysql_num_rows($q600) < 1) {
            niceerror("Nepostojeći kviz {$kviz}");
            zamgerlog("editovanje pitanja: nepostojeci kviz {$kviz}", 3);
            zamgerlog2("nepostojeci kviz (editovanje pitanja)", $kviz);
            return;
        }
        if (mysql_result($q600, 0, 1) != $predmet || mysql_result($q600, 0, 2) != $ag) {
            niceerror("Kviz nije sa ovog predmeta");
            zamgerlog("editovanje pitanja: kviz {$kviz} nije sa predmeta pp{$predmet} ag{$ag}", 3);
            zamgerlog2("id kviza i predmeta se ne poklapaju (editovanje pitanja)", $predmet, $ag, $kviz);
            return;
        }
        $naziv_kviza = mysql_result($q600, 0, 0);
        $max_bodova = mysql_result($q600, 0, 3);
        $prolaz_bodova = mysql_result($q600, 0, 4);
        $broj_bodova = array();
        $ukupno = $max_broj = $ukupno_prolaz = 0;
        for ($i = 0; $i <= $max_bodova; $i++) {
            $q620 = myquery("SELECT COUNT(*) FROM kviz_student WHERE kviz={$kviz} AND dovrsen=1 AND bodova>={$i} AND bodova<" . ($i + 1));
            $broj_bodova[$i] = mysql_result($q620, 0, 0);
            $ukupno += $broj_bodova[$i];
            if ($broj_bodova[$i] > $max_broj) {
                $max_broj = $broj_bodova[$i];
            }
            if ($i >= $prolaz_bodova) {
                $ukupno_prolaz += $broj_bodova[$i];
            }
        }
        $q630 = myquery("SELECT COUNT(*) FROM kviz_student WHERE kviz={$kviz} AND dovrsen=0");
        $nedovrsenih = mysql_result($q630, 0, 0);
        ?>
	<p>Popunilo kviz: <b><?php 
        echo $ukupno;
        ?>
</b> studenata<br />
	Nisu dovršili popunjavanje kviza: <b><?php 
        echo $nedovrsenih;
        ?>
</b> studenata<br />
	Ostvarilo prolazne bodove: <b><?php 
        echo $ukupno_prolaz;
        ?>
</b> studenata (<?php 
        echo procenat($ukupno_prolaz, $ukupno);
        ?>
)</p>
	
	<h3><?php 
        echo $naziv_kviza;
        ?>
</h3>
	<h4>Distribucija bodova</h4>
	<div id="grafik">
		<div style="width:300px;height:200px;margin:5px;">
			<?php 
        foreach ($broj_bodova as $bod => $broj) {
            if ($broj == 0) {
                $broj_pixela_print = 170;
            } else {
                $broj_pixela = $broj / $max_broj * 200;
                $broj_pixela_print = intval(200 - $broj_pixela);
            }
            if ($bod < $prolaz_bodova) {
                $boja = "red";
            } else {
                $boja = "green";
            }
            ?>
				<div style="width:45px; height:200px; background:<?php 
            echo $boja;
            ?>
;margin-left:5px;float:left;">
					<div style="width:45px;height:<?php 
            echo $broj_pixela_print;
            ?>
px;background:white;">&nbsp;</div>
					<span style="color:white;font-size: 25px; text-align: center; ">&nbsp;<?php 
            echo $bod;
            ?>
</span>
				</div>	
				<?php 
        }
        ?>
		</div>
		<div style="width:300px;height:50px;margin:5px;">
			<?php 
        foreach ($broj_bodova as $bod => $broj) {
            ?>
				<div style="width:45px; margin-left:5px; text-align: center; float:left; ">
					<?php 
            echo $broj;
            ?>
 (<?php 
            echo procenat($broj, $ukupno);
            ?>
)
				</div>
				<?php 
        }
        ?>
		</div>
	</div>
	<?php 
        // Statistika pitanja
        ?>
	<h3>Statistika pitanja</h3>
	<table border="1" style="border-collapse:collapse">
	<tr><th>Pitanje</th><th>Uk. odgovora</th><th>Tačnih</th></tr>
	<?php 
        $q640 = myquery("SELECT id, tekst, ukupno, tacnih FROM kviz_pitanje WHERE kviz={$kviz} ORDER BY tacnih/ukupno");
        while ($r640 = mysql_fetch_row($q640)) {
            $id_pitanja = $r640[0];
            $pitanje = $r640[1];
            if (strlen($pitanje) > 60) {
                $skr_pitanje = mb_substr($pitanje, 0, 50) . "...";
            } else {
                $skr_pitanje = $pitanje;
            }
            $odgovora = $r640[2];
            $tacnih = $r640[3];
            ?>
		<tr>
			<td title="<?php 
            echo $pitanje;
            ?>
">
			<a href="?sta=nastavnik/kvizovi&amp;predmet=<?php 
            echo $predmet;
            ?>
&amp;ag=<?php 
            echo $ag;
            ?>
&amp;kviz=<?php 
            echo $kviz;
            ?>
&amp;akcija=pitanja&amp;subakcija=izmijeni&amp;pitanje=<?php 
            echo $id_pitanja;
            ?>
#izmjena"><?php 
            echo $skr_pitanje;
            ?>
</a></td>
			<td><?php 
            echo $odgovora;
            ?>
</td>
			<td><?php 
            echo $tacnih;
            ?>
 (<?php 
            echo procenat($tacnih, $odgovora);
            ?>
)</td>
		</tr>
		<?php 
        }
        ?>
	</table>
	<?php 
        return;
    }
    // Kopiranje kvizova sa prošlogodišnjeg predmeta
    if ($_REQUEST['akcija'] === "prosla_godina" && strlen($_POST['nazad']) < 1) {
        $old_ag = $ag - 1;
        // Ovo je po definiciji prošla godina
        $greska = false;
        $q499 = myquery("SELECT naziv FROM akademska_godina WHERE id={$old_ag}");
        if (mysql_num_rows($q499) == 0) {
            niceerror("Nije pronađena prošla akademska godina.");
            zamgerlog("nije pronadjena akademska godina {$old_ag}");
            zamgerlog2("nije pronadjena akademska godina", $old_ag);
            $greska = true;
        }
        if (!$greska) {
            $q500 = myquery("SELECT naziv FROM kviz WHERE predmet={$predmet} AND akademska_godina={$old_ag}");
            if (mysql_num_rows($q500) == 0) {
                niceerror("Prošle godine nije bio definisan nijedan kviz");
                zamgerlog("prosle godine nije bio definisan nijedan kviz {$predmet} {$old_ag}");
                zamgerlog2("prosle godine nije bio definisan nijedan kviz", $predmet, $old_ag);
                $greska = true;
            }
        }
        if (!$greska && $_REQUEST['potvrda'] === "potvrdjeno" && check_csrf_token()) {
            $q510 = myquery("SELECT id, naziv, vrijeme_pocetak, vrijeme_kraj, ip_adrese, prolaz_bodova, broj_pitanja, trajanje_kviza, aktivan FROM kviz WHERE predmet={$predmet} AND akademska_godina={$old_ag}");
            while ($r510 = mysql_fetch_row($q510)) {
                // Kreiranje novog kviza
                $stari_kviz = $r510[0];
                print "<p>Kopiram kviz {$r510['1']}...</p>";
                $naziv = mysql_real_escape_string($r510[1]);
                $q520 = myquery("INSERT INTO kviz SET naziv='{$naziv}', predmet={$predmet}, akademska_godina={$ag}, vrijeme_pocetak='{$r510['2']}', vrijeme_kraj='{$r510['3']}', ip_adrese='{$r510['4']}', prolaz_bodova={$r510['5']}, broj_pitanja={$r510['6']}, trajanje_kviza={$r510['7']}, aktivan={$r510['8']}");
                $novi_kviz = mysql_insert_id();
                // Kreiranje pitanja
                $q530 = myquery("SELECT id, tip, tekst, bodova, vidljivo FROM kviz_pitanje WHERE kviz={$stari_kviz}");
                while ($r530 = mysql_fetch_row($q530)) {
                    $staro_pitanje = $r530[0];
                    $tekst = mysql_real_escape_string($r530[2]);
                    $q540 = myquery("INSERT INTO kviz_pitanje SET kviz={$novi_kviz}, tip='{$r530['1']}', tekst='{$tekst}', bodova={$r530['3']}, vidljivo={$r530['4']}");
                    $novo_pitanje = mysql_insert_id();
                    // Kreiranje odgovora na pitanje
                    $q550 = myquery("SELECT tekst, tacan, vidljiv FROM kviz_odgovor WHERE kviz_pitanje={$staro_pitanje}");
                    while ($r550 = mysql_fetch_row($q550)) {
                        $tekst = mysql_real_escape_string($r550[0]);
                        $q560 = myquery("INSERT INTO kviz_odgovor SET kviz_pitanje={$novo_pitanje}, tekst='{$tekst}', tacan={$r550['1']}, vidljiv={$r550['2']}");
                    }
                }
            }
            nicemessage("Kopiranje završeno!");
            print "<a href=\"?sta=nastavnik/kvizovi&predmet={$predmet}&ag={$ag}\">Povratak na stranicu kvizova</a>\n";
            return;
        } else {
            if (!$greska) {
                nicemessage("Kopiram sljedeće kvizove iz akademske " . mysql_result($q499, 0, 0) . ". godine.");
                print "\n<ul>\n";
                while ($r500 = mysql_fetch_row($q500)) {
                    print "<li>{$r500['0']}</li>\n";
                }
                print "</ul>\n";
                print genform("POST");
                ?>
		<input type="hidden" name="potvrda" value="potvrdjeno">
		<p>Da li ste sigurni?</p>
		<p><input type="submit" name="nazad" value=" Nazad "> <input type="submit" value=" Potvrda"></p>
		</form>
		<?php 
            }
        }
        return;
    }
    // Korektno brisanje kviza
    if ($_REQUEST['_lv_action_delete']) {
        $kviz = intval($_REQUEST['_lv_column_id']);
        $q200 = myquery("select naziv, predmet, akademska_godina from kviz where id={$kviz}");
        if (mysql_num_rows($q200) < 1) {
            niceerror("Nepostojeći kviz {$kviz}");
            zamgerlog("brisanje kviza: nepostojeci kviz {$kviz}", 3);
            zamgerlog2("nepostojeci kviz (brisanje kviza)", $kviz);
            return;
        }
        if (mysql_result($q200, 0, 1) != $predmet || mysql_result($q200, 0, 2) != $ag) {
            niceerror("Kviz nije sa ovog predmeta");
            zamgerlog("brisanje kviza: kviz {$kviz} nije sa predmeta pp{$predmet} ag{$ag}", 3);
            zamgerlog2("id kviza i predmeta se ne poklapaju (brisanje kviza)", $predmet, $ag, $kviz);
            return;
        }
        $q400 = myquery("select id from kviz_pitanje where kviz={$kviz}");
        // Brisemo odgovore
        while ($r400 = mysql_fetch_row($q400)) {
            $q410 = myquery("delete from kviz_odgovor where kviz_pitanje={$r400['0']}");
        }
        $q420 = myquery("delete from kviz_pitanje where kviz={$kviz}");
        $q430 = myquery("delete from kviz_student where kviz={$kviz}");
        // db_form() će pobrisati stavku iz tabele kviz
        zamgerlog2("obrisan kviz", $predmet, $ag, $kviz);
    }
    // Provjeravamo da li je raspon dobro unesen
    if (($_REQUEST['_lv_action'] == "edit" || $_REQUEST['_lv_action'] == "add") && !$_REQUEST['_lv_action_delete']) {
        $ip_adresa_losa = false;
        if ($_REQUEST['_lv_action'] == "edit") {
            $id_kviza = intval($_REQUEST['_lv_column_id']);
            // Dodajemo logging
            zamgerlog("izmijenjen kviz {$id_kviza} (pp{$predmet})", 2);
            zamgerlog2("izmijenjen kviz", $id_kviza);
        } else {
            $labgrupa = intval($_REQUEST['_lv_column_labgrupa']);
            $naziv = my_escape($_REQUEST['_lv_column_naziv']);
            $pb = floatval($_REQUEST['_lv_column_prolaz_bodova']);
            $q100 = myquery("select id from kviz where predmet={$predmet} and akademska_godina={$ag} and naziv='{$naziv}' and labgrupa={$labgrupa} and prolaz_bodova={$pb}");
            $id_kviza = mysql_result($q100, 0, 0);
            zamgerlog("dodan novi kviz {$id_kviza} (pp{$predmet})", 2);
            zamgerlog2("dodan kviz", $id_kviza);
        }
        $ip_adrese = $_REQUEST['_lv_column_ip_adrese'];
        foreach (explode(",", $ip_adrese) as $blok) {
            if (strstr($blok, "/")) {
                // blok adresa u CIDR formatu
                list($baza, $maska) = explode("/", $blok);
                if ($baza != long2ip(ip2long($baza))) {
                    $ip_adresa_losa = true;
                    break;
                }
                if ($maska != intval($maska)) {
                    $ip_adresa_losa = true;
                    break;
                }
                if ($maska < 1 || $maska > 32) {
                    $ip_adresa_losa = true;
                    break;
                }
            } else {
                if (strstr($blok, "-")) {
                    // raspon adresa sa crticom
                    list($pocetak, $kraj) = explode("-", $blok);
                    if ($pocetak != long2ip(ip2long($pocetak))) {
                        $ip_adresa_losa = true;
                        break;
                    }
                    if ($kraj != long2ip(ip2long($kraj))) {
                        $ip_adresa_losa = true;
                        break;
                    }
                } else {
                    // pojedinačna adresa
                    if ($blok != long2ip(ip2long($blok))) {
                        $ip_adresa_losa = true;
                        break;
                    }
                }
            }
        }
        // Vraćamo se na editovanje lošeg kviza
        if ($ip_adresa_losa) {
            $_REQUEST['_lv_nav_id'] = $id_kviza;
            $_GET['_lv_nav_id'] = $id_kviza;
            $_POST['_lv_nav_id'] = $id_kviza;
            niceerror("Neispravan format IP adrese");
            ?>
		<p>Raspon IP adresa treba biti u jednom od formata:<br>
		- CIDR format (npr. 123.45.67.89/24)<br>
		- raspon početak-kraj sa crticom (npr. 123.45.67.89-123.45.67.98)<br>
		- pojedinačna adresa<br>
		Takođe možete navesti više raspona ili pojedinačnih adresa razdvojenih zarezom.</p>
		<?php 
        }
    }
    // Spisak postojećih kvizova
    $_lv_["where:predmet"] = $predmet;
    $_lv_["where:akademska_godina"] = $ag;
    $_lv_["new_link"] = "Unos novog kviza";
    print "Odaberite neki od postojećih kvizova koji želite administrirati:<br/>\n";
    print db_list("kviz");
    $q1000 = myquery("SELECT COUNT(*) FROM kviz WHERE predmet={$predmet} AND akademska_godina={$ag}");
    if (mysql_result($q1000, 0, 0) == 0) {
        print "<p><a href=\"?sta=nastavnik/kvizovi&predmet={$predmet}&ag={$ag}&akcija=prosla_godina\">Prekopiraj kvizove sa prošle akademske godine</a></p>\n";
    }
    print "<hr>\n";
    $kviz = intval($_REQUEST['_lv_nav_id']);
    if ($kviz > 0) {
        ?>
	<h3>Izmjena kviza</h3>
	<ul>
		<li><a href="?sta=nastavnik/kvizovi&predmet=<?php 
        echo $predmet;
        ?>
&ag=<?php 
        echo $ag;
        ?>
&kviz=<?php 
        echo $kviz;
        ?>
&akcija=pitanja">Izmijenite pitanja na kvizu</a></li>
		<li><a href="?sta=nastavnik/kvizovi&predmet=<?php 
        echo $predmet;
        ?>
&ag=<?php 
        echo $ag;
        ?>
&kviz=<?php 
        echo $kviz;
        ?>
&akcija=rezultati">Rezultati kviza (do sada poslani odgovori)</a></li>
	</ul>
	<?php 
    } else {
        ?>
	<h3>Kreiranje novog kviza</h3>
	<p>Unesite podatke o novom kvizu koji želite kreirati:</p><br>
	<?php 
    }
    $_lv_["label:vrijeme_pocetak"] = "Početak";
    $_lv_["label:vrijeme_kraj"] = "Kraj";
    $_lv_["label:labgrupa"] = "Samo za studente iz grupe";
    $_lv_["label:ip_adrese"] = "Ograniči na IP adrese";
    $_lv_["label:prolaz_bodova"] = "Minimum bodova za prolaz";
    $_lv_["label:trajanje_kviza"] = "Trajanje kviza (u sekundama)";
    $_lv_["hidden:predmet"] = 1;
    $_lv_["hidden:akademska_godina"] = 1;
    print db_form("kviz", "kvizform");
    // Markiramo loše polje
    if ($ip_adresa_losa) {
        ?>
	<script>
	var element = document.getElementsByName('_lv_column_ip_adrese');
	element[0].style.backgroundColor = "#FF9999";
	element[0].focus();
	element[0].select();
	</script>
	<?php 
    }
}