Exemplo n.º 1
0
function studentska_prodsjeka()
{
    global $userid, $user_siteadmin, $user_studentska;
    // Provjera privilegija
    if (!$user_studentska && !$user_siteadmin) {
        zamgerlog("nije studentska", 3);
        // 3: error
        zamgerlog2("nije studentska");
        // 3: error
        biguglyerror("Pristup nije dozvoljen.");
        return;
    }
    // Odredjujemo akademsku godinu
    $ak_god = intval($_REQUEST['ak_god']);
    if ($ak_god == 0) {
        // Aktuelna
        $q1 = myquery("select id, naziv from akademska_godina where aktuelna=1");
        $ak_god = mysql_result($q1, 0, 0);
        $ak_god_naziv = mysql_result($q1, 0, 1);
        // Da li postoji godina iza aktuelne?
        $q2 = myquery("select id, naziv from akademska_godina where id>{$ak_god} order by id limit 1");
        if (mysql_num_rows($q2) > 0) {
            $ak_god = mysql_result($q2, 0, 0);
            $ak_god_naziv = mysql_result($q2, 0, 1);
        }
    } else {
        $q3 = myquery("select naziv from akademska_godina where id={$ak_god}");
        $ak_god_naziv = mysql_result($q3, 0, 0);
    }
    ?>
<h3>Studentska služba - Zahtjevi za promjenu odsjeka</h3>
<?php 
    // Akcija: brisanje zahtjeva
    if ($_REQUEST['akcija'] == "obrisi") {
        $id = intval($_REQUEST['id']);
        $q5 = myquery("delete from promjena_odsjeka where id={$id}");
        zamgerlog("obrisan zahtjev za promjenu odsjeka sa IDom {$id}", 2);
        // 2 = edit
        zamgerlog2("obrisan zahtjev za promjenu odsjeka", $id);
    }
    // Akcija: dodavanje zahtjeva
    if ($_POST['akcija'] == "dodaj" && check_csrf_token()) {
        $prezime = trim(malaslova(my_escape($_REQUEST['prezime'])));
        $ime = trim(malaslova(my_escape($_REQUEST['ime'])));
        $iz_odsjeka = intval($_REQUEST['iz_odsjeka']);
        $u_odsjek = intval($_REQUEST['u_odsjek']);
        $q100 = myquery("select id from osoba where ime='{$ime}' and prezime='{$prezime}'");
        if (mysql_num_rows($q100) < 1) {
            niceerror("Nepoznat student pod imenom: \"{$ime} {$prezime}\"");
        } else {
            if ($iz_odsjeka == 0 || $u_odsjek == 0) {
                niceerror("Niste odabrali odsjek");
            } else {
                $osoba = mysql_result($q100, 0, 0);
                $q105 = myquery("select count(*) from promjena_odsjeka where osoba={$osoba} and akademska_godina={$ak_god}");
                if (mysql_result($q105, 0, 0) > 0) {
                    niceerror("Već postoji zahtjev za promjenu odsjeka za studenta \"{$ime} {$prezime}\"");
                } else {
                    $q110 = myquery("insert into promjena_odsjeka set osoba={$osoba}, iz_odsjeka={$iz_odsjeka}, u_odsjek={$u_odsjek}, akademska_godina={$ak_god}");
                    $q115 = myquery("select id from promjena_odsjeka where osoba={$osoba} and iz_odsjeka={$iz_odsjeka} and u_odsjek={$u_odsjek} and akademska_godina={$ak_god}");
                    zamgerlog("dodan zahtjev za promjenu odsjeka za osobu u{$osoba} (iz {$iz_odsjeka} u {$u_odsjek})", 2);
                    zamgerlog2("dodan zahtjev za promjenu odsjeka", intval($osoba), $iz_odsjeka, $u_odsjek);
                }
            }
        }
    }
    // Akcija: prihvatanje zahtjeva
    // Ustvari ćemo samo dati linkove na modul studentska/osobe
    if ($_REQUEST['akcija'] == "prihvati") {
        $id = intval($_REQUEST['id']);
        $potvrda = intval($_REQUEST['potvrda']);
        $q500 = myquery("select osoba, iz_odsjeka, u_odsjek from promjena_odsjeka where id={$id} and akademska_godina={$ak_god}");
        if (mysql_num_rows($q500) < 1) {
            niceerror("Nepoznat zahtjev ID");
            return;
        }
        $osoba = mysql_result($q500, 0, 0);
        $iz_odsjeka = mysql_result($q500, 0, 1);
        $u_odsjek = mysql_result($q500, 0, 2);
        // Da li trenutno studira
        $q510 = myquery("select s.id, s.naziv, ss.semestar from studij as s, student_studij as ss where ss.student={$osoba} and ss.studij=s.id and ss.akademska_godina={$ak_god} order by ss.semestar desc");
        if (mysql_num_rows($q510) > 0) {
            $studij = mysql_result($q510, 0, 0);
            $naziv_studija = mysql_result($q510, 0, 1);
            $semestar = mysql_result($q510, 0, 2);
            if ($studij == $u_odsjek) {
                nicemessage("Student je već upisan na studij {$naziv_studija}");
                return;
            }
            if ($studij != $iz_odsjeka) {
                niceerror("Student je trenutno upisan na studij {$naziv_studija} a ne na izabrani studij!");
                print "Vaš zahtjev nije ispravan. Obrišite ga i napravite novi.";
                return;
            }
            // Ispis sa studija
            ?>
		<p>Najprije morate ispisati studenta sa studija <?php 
            echo $naziv_studija;
            ?>
. <a href="?sta=studentska/osobe&osoba=<?php 
            echo $osoba;
            ?>
&akcija=ispis&studij=<?php 
            echo $iz_odsjeka;
            ?>
&semestar=<?php 
            echo $semestar;
            ?>
&godina=<?php 
            echo $ak_god;
            ?>
">Kliknite ovdje da ispišete studenta sa studija,</a> a zatim se vratite na stranicu &quot;Promjena odsjeka&quot; kako biste ga/je upisali na novi studij.</p>
		<?php 
            return;
        }
        // Koji je zadnji semestar slušao?
        $q560 = myquery("select ss.studij, ss.semestar, s.naziv from student_studij as ss, studij as s where ss.student={$osoba} and ss.studij=s.id order by ss.akademska_godina desc, ss.semestar desc");
        $studij = mysql_result($q560, 0, 0);
        $zadnji_semestar = mysql_result($q560, 0, 1);
        $naziv_studija = mysql_result($q560, 0, 2);
        if ($studij != $iz_odsjeka) {
            niceerror("Student je prošle godine bio upisan na studij {$naziv_studija}, a ne na odabrani studij!");
            print "Vaš zahtjev nije ispravan. Obrišite ga i napravite novi.";
            return;
        }
        $q570 = myquery("select naziv from studij where id={$u_odsjek}");
        $naziv_ciljnog = mysql_result($q570, 0, 0);
        print "<p>Provjerite da li student ima uslove za upis u viši semestar ili nema!!!</p>\n";
        if ($zadnji_semestar % 2 == 1) {
            $manji = $zadnji_semestar - 1;
            $veci = $zadnji_semestar + 1;
            ?>
		<p><a href="?sta=studentska/osobe&osoba=<?php 
            echo $osoba;
            ?>
&akcija=upis&studij=<?php 
            echo $u_odsjek;
            ?>
&semestar=<?php 
            echo $manji;
            ?>
&godina=<?php 
            echo $ak_god;
            ?>
">Ponovo upiši studenta na <?php 
            echo $naziv_ciljnog;
            ?>
, <?php 
            echo $manji;
            ?>
. semestar.</a></p>
		<p><a href="?sta=studentska/osobe&osoba=<?php 
            echo $osoba;
            ?>
&akcija=upis&studij=<?php 
            echo $u_odsjek;
            ?>
&semestar=<?php 
            echo $veci;
            ?>
&godina=<?php 
            echo $ak_god;
            ?>
">Upiši studenta na <?php 
            echo $naziv_ciljnog;
            ?>
, <?php 
            echo $veci;
            ?>
. semestar.</a></p>
		<?php 
        } else {
            ?>
		<p><a href="?sta=studentska/osobe&osoba=<?php 
            echo $osoba;
            ?>
&akcija=upis&studij=<?php 
            echo $u_odsjek;
            ?>
&semestar=<?php 
            echo $zadnji_semestar;
            ?>
&godina=<?php 
            echo $ak_god;
            ?>
">Ponovo upiši studenta na <?php 
            echo $naziv_ciljnog;
            ?>
, <?php 
            echo $zadnji_semestar;
            ?>
. semestar.</a></p>
		<?php 
        }
        return;
    }
    // Akcija: kratki izvjestaj
    if ($_REQUEST['akcija'] == "kratkiizvj") {
        $q220 = myquery("select s.id, s.naziv from studij as s, tipstudija as ts where s.tipstudija=ts.id and ts.moguc_upis=1 and ts.ciklus=1");
        while ($r220 = mysql_fetch_row($q220)) {
            $ime_odsjeka[$r220[0]] = $r220[1];
        }
        $q400 = myquery("select iz_odsjeka,u_odsjek from promjena_odsjeka where akademska_godina={$ak_god}");
        $total = 0;
        while ($r400 = mysql_fetch_row($q400)) {
            $iz[$r400[0]]++;
            $u[$r400[1]]++;
            $total++;
        }
        ?>
	<table border="1"><tr bgcolor="#CCCCCC"><td><b>Studij</b></td> <td><b>Sa studija</b></td> <td><b>Na studij</b></td> <td><b>Razlika</b></td></tr>
	<?php 
        foreach ($ime_odsjeka as $id => $ime) {
            ?>
<tr><td><?php 
            echo $ime;
            ?>
</td><td><?php 
            echo $iz[$id];
            ?>
</td> <td><?php 
            echo $u[$id];
            ?>
</td> <td bgcolor="#EEEEEE"><?php 
            echo $u[$id] - $iz[$id];
            ?>
</td></tr>
		<?php 
        }
        ?>
	<tr><td>UKUPNO</td><td colspan="3" align="right"><?php 
        echo $total;
        ?>
 zahtjeva</td></tr></table>
	<?php 
        return;
    }
    // Akcija: izvjestaj
    if ($_REQUEST['akcija'] == "izvjestaj") {
        $suma = 0;
        foreach ($_REQUEST as $key => $value) {
            if (substr($key, 0, 6) == "limit-") {
                $studij = intval(substr($key, 6));
                $limit[$studij] = intval($value);
                $suma += intval($value);
            }
        }
        if ($suma != 0) {
            niceerror("Suma svih limita mora biti nula!");
            return;
        }
        // Zahtjeve sortiramo po broju polozenih predmeta i prosjecnoj ocjeni
        $zahtjevi = array();
        global $brojpredmeta, $prosjek;
        // zbog usort() :(
        $q200 = myquery("select po.osoba, po.iz_odsjeka, po.u_odsjek, o.ime, o.prezime from promjena_odsjeka as po, osoba as o where po.osoba=o.id and po.akademska_godina={$ak_god}");
        while ($r200 = mysql_fetch_row($q200)) {
            $zahtjevi[] = $r200[0];
            $imeiprezime[$r200[0]] = "{$r200['3']} {$r200['4']}";
            $izodsjeka[$r200[0]] = $r200[1];
            $uodsjek[$r200[0]] = $r200[2];
            $uk_izodsjeka[$r200[1]]++;
            $uk_uodsjek[$r200[2]]++;
            // Prosjek
            $q210 = myquery("select ko.ocjena from konacna_ocjena as ko, ponudakursa as pk where ko.student={$r200['0']} and ko.predmet=pk.predmet and pk.semestar<3");
            while ($r210 = mysql_fetch_row($q210)) {
                $brojpredmeta[$r200[0]]++;
                $prosjek[$r200[0]] += $r210[0];
            }
            $prosjek[$r200[0]] = $prosjek[$r200[0]] / $brojpredmeta[$r200[0]];
        }
        // Sort preko korisnicke funkcije
        function po_broju_i_prosjeku($s1, $s2)
        {
            global $brojpredmeta, $prosjek;
            if ($brojpredmeta[$s1] < $brojpredmeta[$s2]) {
                return 1;
            } else {
                if ($brojpredmeta[$s1] > $brojpredmeta[$s2]) {
                    return -1;
                } else {
                    if ($prosjek[$s1] < $prosjek[$s2]) {
                        return 1;
                    } else {
                        if ($prosjek[$s1] > $prosjek[$s2]) {
                            return -1;
                        }
                    }
                }
            }
            return 0;
        }
        usort($zahtjevi, po_broju_i_prosjeku);
        // Da li je zahtjev prihvacen ili odbijen?
        $odbijen = array();
        // Status -1 znaci da nije jos uvijek razmatran
        for ($i = 0; $i < count($zahtjevi); $i++) {
            $odbijen[$zahtjevi[$i]] = -1;
        }
        for ($i = 0; $i < count($zahtjevi); $i++) {
            if ($brojpredmeta[$zahtjevi[$i]] < 9) {
                // Ponovci svakako ne mogu mijenjati odsjek
                $odbijen[$zahtjevi[$i]] = 1;
            }
        }
        for ($i = 0; $i < count($zahtjevi); $i++) {
            $osoba = $zahtjevi[$i];
            if ($odbijen[$osoba] != -1) {
                continue;
            }
            // Vec obradjen
            if ($limit[$uodsjek[$osoba]] > 0 && $limit[$izodsjeka[$osoba]] < 0) {
                // Ulazi u limit
                $odbijen[$osoba] = 0;
                $limit[$izodsjeka[$osoba]]++;
                $limit[$uodsjek[$osoba]]--;
                continue;
            }
            // Trazimo osobu s kojom ce se mijenjati
            for ($j = $i + 1; $j < count($zahtjevi); $j++) {
                $osoba2 = $zahtjevi[$j];
                if ($odbijen[$osoba2] != -1) {
                    continue;
                }
                // Vec obradjen
                if ($izodsjeka[$osoba] == $uodsjek[$osoba2] && $uodsjek[$osoba] == $izodsjeka[$osoba2]) {
                    // Klasicna zamjena
                    $odbijen[$osoba] = 0;
                    $odbijen[$osoba2] = 0;
                    break;
                }
                if ($izodsjeka[$osoba] == $uodsjek[$osoba2]) {
                    if ($limit[$uodsjek[$osoba]] > 0 && $limit[$izodsjeka[$osoba2]] < 0) {
                        // Zamjena ulazi u limit
                        $odbijen[$osoba] = 0;
                        $odbijen[$osoba2] = 0;
                        $limit[$izodsjeka[$osoba2]]++;
                        $limit[$uodsjek[$osoba]]--;
                        break;
                    }
                    // Trazimo trecu osobu za 1->2->3->1 zamjenu
                    for ($k = $j + 1; $k < count($zahtjevi); $k++) {
                        $osoba3 = $zahtjevi[$k];
                        if ($odbijen[$osoba3] != -1) {
                            continue;
                        }
                        if ($izodsjeka[$osoba2] == $uodsjek[$osoba3] && $izodsjeka[$osoba3] == $uodsjek[$osoba]) {
                            $odbijen[$osoba] = 0;
                            $odbijen[$osoba2] = 0;
                            $odbijen[$osoba3] = 0;
                            break;
                        }
                    }
                }
                if ($odbijen[$osoba] == 0) {
                    break;
                }
                // Zbog $k petlje
                // Da li u limit ulazi kontra-zamjena?
                if ($izodsjeka[$osoba2] == $uodsjek[$osoba]) {
                    if ($limit[$uodsjek[$osoba2]] > 0 && $limit[$izodsjeka[$osoba1]] < 0) {
                        $odbijen[$osoba] = 0;
                        $odbijen[$osoba2] = 0;
                        $limit[$izodsjeka[$osoba]]++;
                        $limit[$uodsjek[$osoba2]]--;
                        break;
                    }
                }
            }
            // Nista nismo nasli, ovaj je odbijen
            if ($odbijen[$osoba] == -1) {
                $odbijen[$osoba] = 1;
            }
        }
        // Ispis
        $q220 = myquery("select id,kratkinaziv from studij where moguc_upis=1");
        while ($r220 = mysql_fetch_row($q220)) {
            $ime_odsjeka[$r220[0]] = $r220[1];
        }
        ?>
	<b>Prihvaćeni zahtjevi:</b>
	<table border="1"><tr><td>R. br.</td><td>Ime i 
prezime</td><td>Iz 
odsjeka</td><td>U odsjek</td><td>Broj pol.</td><td>Prosjek</td></tr>
	<?php 
        $rbr = 1;
        foreach ($zahtjevi as $osoba) {
            if ($odbijen[$osoba] == 1) {
                continue;
            }
            print "<tr> \n<td>" . $rbr++ . "</td> <td>" . $imeiprezime[$osoba] . "</td> \n<td>" . $ime_odsjeka[$izodsjeka[$osoba]] . "</td> <td>" . $ime_odsjeka[$uodsjek[$osoba]] . "</td> <td>" . $brojpredmeta[$osoba] . "</td> <td>" . round($prosjek[$osoba], 2) . "</td></tr>\n";
        }
        ?>
	</table>
	<p>&nbsp;</p>
	<b>Odbijeni zahtjevi:</b>
	<table border="1"><tr><td>R. br.</td><td>Ime i 
prezime</td><td>Iz 
odsjeka</td><td>U odsjek</td><td>Broj pol.</td><td>Prosjek</td></tr>
	<?php 
        $rbr = 1;
        foreach ($zahtjevi as $osoba) {
            if ($odbijen[$osoba] == 0) {
                continue;
            }
            print "<tr> \n<td>" . $rbr++ . "</td> <td>" . $imeiprezime[$osoba] . "</td> \n<td>" . $ime_odsjeka[$izodsjeka[$osoba]] . "</td> <td>" . $ime_odsjeka[$uodsjek[$osoba]] . "</td> <td>" . $brojpredmeta[$osoba] . "</td> <td>" . round($prosjek[$osoba], 2) . "</td></tr>\n";
        }
        print "</table>\n";
        /*	foreach ($delta as $odsjek=>$broj) {
        		print "Delta ".$ime_odsjeka[$odsjek]." je $broj<br/>";
        		print "Odobreno ".$ime_odsjeka[$odsjek]." je ".$odobreno[$odsjek]."<br/>";
        	}*/
        return;
    }
    // Spisak zahtjeva
    ?>
<b>Aktuelni zahtjevi (akademska <?php 
    echo $ak_god_naziv;
    ?>
):</b>
<ul>
<?php 
    $q10 = myquery("select po.id, o.ime, o.prezime, s.naziv, po.u_odsjek, o.id from promjena_odsjeka as po, osoba as o, studij as s where po.osoba=o.id and po.iz_odsjeka=s.id and po.akademska_godina={$ak_god}");
    if (mysql_num_rows($q10) < 1) {
        print "<li>Nema zahtjeva</li\n";
    }
    $total = 0;
    while ($r10 = mysql_fetch_row($q10)) {
        $q20 = myquery("select naziv from studij where id={$r10['4']}");
        ?>
	<li><a href="?sta=studentska/osobe&akcija=edit&osoba=<?php 
        echo $r10[5];
        ?>
"><?php 
        echo $r10[1];
        ?>
 <?php 
        echo $r10[2];
        ?>
</a> - sa "<?php 
        echo $r10[3];
        ?>
" na "<?php 
        echo mysql_result($q20, 0, 0);
        ?>
" (<a href="?sta=studentska/prodsjeka&akcija=obrisi&id=<?php 
        echo $r10[0];
        ?>
&ak_god=<?php 
        echo $ak_god;
        ?>
">obriši zahtjev</a>) (<a href="?sta=studentska/prodsjeka&akcija=prihvati&id=<?php 
        echo $r10[0];
        ?>
&ak_god=<?php 
        echo $ak_god;
        ?>
">prihvati zahtjev</a>)</li>
	<?php 
        $total++;
    }
    print "</ul><p>Ukupno: {$total} zahtjeva * <a href=\"?sta=studentska/prodsjeka&akcija=kratkiizvj\">Statistički pregled</a></p>\n\n";
    // Novi zahtjev
    // Upit za spisak odsjeka
    $spisak_odsjeka = "<option></option>\n";
    $q30 = myquery("select s.id, s.kratkinaziv from studij as s, tipstudija as ts where s.tipstudija=ts.id and ts.moguc_upis=1 and ts.ciklus=1 order by s.kratkinaziv");
    // Promjena odsjeka ima smisla samo na prvom ciklusu
    while ($r30 = mysql_fetch_row($q30)) {
        $spisak_odsjeka .= "<option value=\"{$r30['0']}\">{$r30['1']}</option>\n";
    }
    ?>
<hr><br/>
<b>Upišite novi zahtjev za promjenu odsjeka:</b><br/><br/>
<?php 
    echo genform("POST");
    ?>
<input type="hidden" name="akcija" value="dodaj">
Ime: <input type="text" name="ime" size="10">
Prezime: <input type="text" name="prezime" size="10"><br/>
Želi preći sa odsjeka: 
<select name="iz_odsjeka">
<?php 
    echo $spisak_odsjeka;
    ?>
</select>
Na odsjek:
<select name="u_odsjek">
<?php 
    echo $spisak_odsjeka;
    ?>
</select>
<br/>
<input type="submit" value=" Dodaj "></form>
<?php 
    // Izvjestaji
    ?>
<hr><br/>
<b>Spisak prihvaćenih i odbijenih zahtjeva:</b><br/><br/>
<?php 
    echo genform("POST");
    ?>
<input type="hidden" name="akcija" value="izvjestaj">
Iznos maksimalne promjene broja studenata po odsjeku:<br/>
<?php 
    $q40 = myquery("select s.id, s.kratkinaziv from studij as s, tipstudija as ts where s.tipstudija=ts.id and ts.moguc_upis=1 and ts.ciklus=1 order by s.kratkinaziv");
    // hardkodirano samo za prvi ciklus
    // zato što promjena studija na drugom ciklusu (koji traje 1-2 godine) baš i nema smisla
    while ($r40 = mysql_fetch_row($q40)) {
        print "{$r40['1']}: <input type=\"text\" name=\"limit-{$r40['0']}\" value=\"0\" size=\"3\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ";
    }
    ?>
<input type="submit" value=" Prikaži ">
</form>
<br/>


<?php 
}
Exemplo n.º 2
0
function mass_input($ispis)
{
    global $mass_rezultat, $userid;
    $mass_rezultat = array();
    // brišemo niz
    $mass_rezultat['ime'] = array();
    // sprječavamo upozorenja
    // Da li treba ispisivati akcije na ekranu ili ne?
    $f = $ispis;
    // Parametri
    $ponudakursa = intval($_REQUEST['ponudakursa']);
    $predmet = intval($_REQUEST['predmet']);
    $ag = intval($_REQUEST['ag']);
    // akademska godina
    $redovi = explode("\n", $_POST['massinput']);
    // Format imena i prezimena:
    //   0 - Prezime[SEPARATOR]Ime
    //   1 - Ime[SEPARATOR]Prezime
    //   2 - Prezime Ime
    //   3 - Ime Prezime
    $format = intval($_REQUEST['format']);
    // Broj dodatnih kolona podataka (osim imena i prezimena)
    $brpodataka = intval($_REQUEST['brpodataka']);
    if ($_REQUEST['brpodataka'] == 'on') {
        $brpodataka = 1;
    }
    //checkbox
    $kolona = $brpodataka + 1;
    if ($format < 2) {
        $kolona++;
    }
    // Separator: 0 = TAB, 1 = zarez, ...
    $separator = intval($_REQUEST['separator']);
    if ($separator == 1) {
        $sepchar = ',';
    } else {
        $sepchar = "\t";
    }
    // Da li je dozvoljeno ponavljanje istog studenta? 1=da, sve ostalo=ne
    $duplikati = intval($_REQUEST['duplikati']);
    if ($duplikati != 1) {
        $duplikati = 0;
    }
    // U slucaju duplikati=1, sta se desava sa ponovnim unosom?
    // 0=pise se preko starog, 1=rezultati su nizovi
    $visestruki = intval($_REQUEST['visestruki']);
    if ($visestruki != 1) {
        $visestruki = 0;
    }
    // Update korisničkih preferenci kod masovnog unosa
    $q190 = myquery("select vrijednost from preference where korisnik={$userid} and preferenca='mass-input-format'");
    if (mysql_num_rows($q190) < 1) {
        $q191 = myquery("insert into preference set korisnik={$userid}, preferenca='mass-input-format', vrijednost='{$format}'");
    } else {
        if (mysql_result($q190, 0, 0) != $format) {
            $q192 = myquery("update preference set vrijednost='{$format}' where korisnik={$userid} and preferenca='mass-input-format'");
        }
    }
    $q193 = myquery("select vrijednost from preference where korisnik={$userid} and preferenca='mass-input-separator'");
    if (mysql_num_rows($q193) < 1) {
        $q194 = myquery("insert into preference set korisnik={$userid}, preferenca='mass-input-separator', vrijednost='{$separator}'");
    } else {
        if (mysql_result($q193, 0, 0) != $separator) {
            $q195 = myquery("update preference set vrijednost='{$separator}' where korisnik={$userid} and preferenca='mass-input-separator'");
        }
    }
    $greska = 0;
    $prosli_idovi = array();
    // za duplikate
    foreach ($redovi as $red) {
        $red = trim($red);
        if (strlen($red) < 2) {
            continue;
        }
        // prazan red
        // popravljamo nbsp Unicode karakter
        $red = str_replace("¡", " ", $red);
        $red = str_replace(" ", " ", $red);
        $red = my_escape($red);
        $nred = explode($sepchar, $red, $kolona);
        // Parsiranje formata
        if ($format == 0) {
            $prezime = $nred[0];
            $ime = $nred[1];
        } else {
            if ($format == 1) {
                $ime = $nred[0];
                $prezime = $nred[1];
            } else {
                if ($format == 2) {
                    list($prezime, $ime) = explode(" ", $nred[0], 2);
                } else {
                    if ($format == 3) {
                        list($ime, $prezime) = explode(" ", $nred[0], 2);
                    } else {
                        niceerror("Nedozvoljen format");
                        // ovo je fatalna greska
                        return 1;
                    }
                }
            }
        }
        // Fixevi za naša slova i trim
        $prezime = trim(malaslova($prezime));
        $ime = trim(malaslova($ime));
        // Provjera ispravnosti podataka
        // Da li korisnik postoji u bazi?
        $q10 = myquery("select id from osoba where ime like '{$ime}' and prezime like '{$prezime}'");
        if (mysql_num_rows($q10) < 1) {
            if ($f) {
                ?>
<tr bgcolor="#FFE3DD"><td><?php 
                echo $prezime;
                ?>
</td><td><?php 
                echo $ime;
                ?>
</td><td>nepoznat student - da li ste dobro ukucali ime?</td></tr><?php 
            }
            $greska = 1;
            continue;
        } else {
            if (mysql_num_rows($q10) > 1) {
                if ($ponudakursa > 0) {
                    // Postoji više studenata sa istim imenom i prezimenom
                    // Biramo onog koji je upisan na ovu ponudukursa
                    $q10 = myquery("select DISTINCT o.id from osoba as o, student_predmet as sp where o.ime like '{$ime}' and o.prezime like '{$prezime}' and o.id=sp.student and sp.predmet={$ponudakursa}");
                    if (mysql_num_rows($q10) < 1) {
                        if ($f) {
                            ?>
<tr bgcolor="#FFE3DD"><td><?php 
                            echo $prezime;
                            ?>
</td><td><?php 
                            echo $ime;
                            ?>
</td><td>nije upisan/a na ovaj predmet</td></tr><?php 
                        }
                        $greska = 1;
                        continue;
                    } else {
                        if (mysql_num_rows($q10) > 1) {
                            // Na istom su predmetu!? wtf
                            if ($f) {
                                ?>
<tr bgcolor="#FFE3DD"><td><?php 
                                echo $prezime;
                                ?>
</td><td><?php 
                                echo $ime;
                                ?>
</td><td>postoji više studenata sa ovim imenom i prezimenom; koristite pogled grupe</td></tr><?php 
                            }
                            $greska = 1;
                            continue;
                        }
                    }
                } else {
                    if ($predmet > 0 && $ag > 0) {
                        // Isto za predmet
                        $q10 = myquery("select DISTINCT o.id from osoba as o, student_predmet as sp, ponudakursa as pk where o.ime like '{$ime}' and o.prezime like '{$prezime}' and o.id=sp.student and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}");
                        if (mysql_num_rows($q10) < 1) {
                            if ($f) {
                                ?>
<tr bgcolor="#FFE3DD"><td><?php 
                                echo $prezime;
                                ?>
</td><td><?php 
                                echo $ime;
                                ?>
</td><td>nije upisan/a na ovaj predmet</td></tr><?php 
                            }
                            $greska = 1;
                            continue;
                        } else {
                            if (mysql_num_rows($q10) > 1) {
                                // Na istom su predmetu!? wtf
                                if ($f) {
                                    ?>
<tr bgcolor="#FFE3DD"><td><?php 
                                    echo $prezime;
                                    ?>
</td><td><?php 
                                    echo $ime;
                                    ?>
</td><td>postoji više studenata sa ovim imenom i prezimenom; koristite pogled grupe</td></tr><?php 
                                }
                                $greska = 1;
                                continue;
                            }
                        }
                    } else {
                        if ($f) {
                            ?>
<tr bgcolor="#FFE3DD"><td><?php 
                            echo $prezime;
                            ?>
</td><td><?php 
                            echo $ime;
                            ?>
</td><td>postoji više studenata sa ovim imenom i prezimenom; koristite pogled grupe</td></tr><?php 
                        }
                        $greska = 1;
                        continue;
                    }
                }
            }
        }
        $student = mysql_result($q10, 0, 0);
        // Da li se ponavlja isti student?
        if ($duplikati == 0) {
            // FIXME: zašto ne radi array_search?
            if (in_array($student, $prosli_idovi)) {
                if ($f) {
                    ?>
<tr bgcolor="#FFE3DD"><td><?php 
                    echo $prezime;
                    ?>
</td><td><?php 
                    echo $ime;
                    ?>
</td><td>ponavlja se</td></tr><?php 
                }
                $greska = 1;
                continue;
            }
            array_push($prosli_idovi, $student);
        }
        // Da li je upisan na predmet?
        $q20 = 0;
        if ($ponudakursa > 0) {
            $q20 = myquery("select count(*) from student_predmet where student={$student} and predmet={$ponudakursa}");
        } else {
            if ($predmet > 0 && $ag > 0) {
                $q20 = 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}");
            }
        }
        if ($q20 != 0) {
            if (mysql_result($q20, 0, 0) < 1) {
                // Pokusacemo preskociti studente koji nemaju ocjenu
                if ($format == 0 || $format == 1) {
                    $bodovi = $nred[2];
                } else {
                    $bodovi = $nred[1];
                }
                if (!preg_match("/\\w/", $bodovi)) {
                    if ($f) {
                        ?>
<tr bgcolor="#EEEEEE"><td><?php 
                        echo $prezime;
                        ?>
</td><td><?php 
                        echo $ime;
                        ?>
</td><td>nepoznat student, nema ocjene - preskačem</td></tr><?php 
                    }
                } else {
                    if ($f) {
                        ?>
<tr bgcolor="#FFE3DD"><td><?php 
                        echo $prezime;
                        ?>
</td><td><?php 
                        echo $ime;
                        ?>
</td><td>nije upisan/a na ovaj predmet</td></tr><?php 
                    }
                    $greska = 1;
                }
                continue;
            }
        }
        // Podaci su OK, punimo niz...
        $mass_rezultat['ime'][$student] = $ime;
        $mass_rezultat['prezime'][$student] = $prezime;
        for ($i = 1; $i <= $brpodataka; $i++) {
            if ($duplikati == 1 && $visestruki == 1) {
                if (count($mass_rezultat["podatak{$i}"][$student]) == 0) {
                    $mass_rezultat["podatak{$i}"][$student] = array();
                }
                array_push($mass_rezultat["podatak{$i}"][$student], $nred[$kolona - $brpodataka - 1 + $i]);
            } else {
                $mass_rezultat["podatak{$i}"][$student] = $nred[$kolona - $brpodataka - 1 + $i];
            }
        }
    }
    if ($f) {
        print "<br/>\n";
    }
    return $greska;
}