Molim za pomoć!
Radim "Studentski Servis", za školu na kojoj studiram a ujedno i sebi diplosmki rad...
Imam problem sa sql select-om.
Da bi vas upoznao sa mojim problemom, prvo pogledajte tabele putem linka: https://docs.google.com/file/d...ZpVTFLYVBpUlE/edit?usp=sharing
E sad, problem mi je u stranici za prijavu ispita.
Da bih prijava ispita radila pravilno mora se dobro organzovati upit.
Recimo mi prijavljujemo ispit, 2 smo godina i treba da polažemo ispite 3 semestra!
Znaci,mi moramo da iz spiska ispita za prijave ispita izbacimo ispite koji pripadaju 4,5,6,7 i 8 semestru (tj ono sto jos nismo imali predavano a imacemo),
moramo da izbacimo polozene ispite i moramo da izbacimo one za koje smo dobili zabranu polaganja.
Ali moramo da vodimo računa o tome da ispiti pripadaju našem smeru (recimo smeru informacionih tehnologija).
E sad,kad odbijamo polozeni predmet iz spiska prijave, taj predmet mora da se odnosi samo na naš tj. na naš broj indeksa koji je recimo 4-103/2010, a takodje i zabranu koja je izrečena samo za nas broj indeksa...
Nadam se da shvatate.
Pogled na kod:
Code:
$indeks = $red['indeks'];
$zadnji_overen_sem = $red['zadnji_overen_sem']; //zadnji overen semestar
$id_smera = $red['indeks']; //broj 4 iz indeksa predstavlja smer: 4-103/2010
if(intval($id_smera[0]) < 5 AND intval($id_smera[0]) > 0 ) // Da li je smer u intervalu (0,5)
$id_smera[0];
$spisak = " SELECT * FROM spisak_ispita, predmet, predmet_po_smeru ,profesor
WHERE spisak_ispita.sifra_predmeta = predmet.sifra_predmeta
AND spisak_ispita.sifra_predmeta = predmet_po_smeru.sifra_predmeta
AND predmet.sifra_predmeta = predmet_po_smeru.sifra_predmeta
AND predmet_po_smeru.id_smera = '$id_smera'
AND predmet_po_smeru.broj_semestra <= '$zadnji_overen_sem'
AND spisak_ispita.id_prof = profesor.id
AND spisak_ispita.id_ispit NOT IN (select id_prijave_ispita from ocena)
AND spisak_ispita.id_ispit NOT IN (select id_ispit from prijava_ispita)
";
$rezultat = mysql_query($spisak);
while($red = mysql_fetch_array($rezultat))
{
$id_ispit = $red['id_ispit'];
$sifra_predmeta = $red['sifra_predmeta'];
$ime_predmeta = $red['ime_predmeta'];
.
.
.
}
$indeks = $red['indeks'];
$zadnji_overen_sem = $red['zadnji_overen_sem']; //zadnji overen semestar
$id_smera = $red['indeks']; //broj 4 iz indeksa predstavlja smer: 4-103/2010
if(intval($id_smera[0]) < 5 AND intval($id_smera[0]) > 0 ) // Da li je smer u intervalu (0,5)
$id_smera[0];
$spisak = " SELECT * FROM spisak_ispita, predmet, predmet_po_smeru ,profesor
WHERE spisak_ispita.sifra_predmeta = predmet.sifra_predmeta
AND spisak_ispita.sifra_predmeta = predmet_po_smeru.sifra_predmeta
AND predmet.sifra_predmeta = predmet_po_smeru.sifra_predmeta
AND predmet_po_smeru.id_smera = '$id_smera'
AND predmet_po_smeru.broj_semestra <= '$zadnji_overen_sem'
AND spisak_ispita.id_prof = profesor.id
AND spisak_ispita.id_ispit NOT IN (select id_prijave_ispita from ocena)
AND spisak_ispita.id_ispit NOT IN (select id_ispit from prijava_ispita)
";
$rezultat = mysql_query($spisak);
while($red = mysql_fetch_array($rezultat))
{
$id_ispit = $red['id_ispit'];
$sifra_predmeta = $red['sifra_predmeta'];
$ime_predmeta = $red['ime_predmeta'];
.
.
.
}
Ovaj sql select dobro radi,osim poslednja 2 reda:
Code:
AND spisak_ispita.id_ispit NOT IN (select id_prijave_ispita from ocena)
AND spisak_ispita.id_ispit NOT IN (select id_ispit from prijava_ispita)
AND spisak_ispita.id_ispit NOT IN (select id_prijave_ispita from ocena)
AND spisak_ispita.id_ispit NOT IN (select id_ispit from prijava_ispita)
Oni bi trebali da kazu da to vazi samo za nas indeks 4-103/2010 $indeks = $red['indeks']; ...
Ja ne znam kako da to dopisem u ovaj upit, ali razumem problem.
Nadam se da me razumete sta je problem odnosno da sam vam objasnio...
SQL kod tabela možete videti putem linka: https://docs.google.com/file/d...N5MlNfaHVuWnc/edit?usp=sharing
Hvala svima unapred koji mi daju sugestiju ili mi rese problem!