[ Mister Big Time @ 18.09.2006. 10:19 ] @
Zelim npr. da napravim prikaz arhive dogadjaja (arhiva=stari dogadjaji u bazi osim onih koji su aktuelni na sajtu): Primer SQL upita koji to radi: Code: SELECT * FROM `dogadjaji_news` WHERE kategorija_name NOT LIKE 'sajt_aktuelno'; Ovaj upit normalno radi na samoj bazi. Medjutim treba preko PHP-a to prikazati odnosno implementirati u vec postojecu web aplikaciju. Kod za prikaz glasi: Code: <?php include_once '../system/prikaz.php'; arhiva(10); ?> broj 10 u zagradi je promenljiva koja odredjuje broj prikazanih najnovijih item-a na stranici. To radi normalno i lepo. Promenom broja u zagradi menja se i broj dogadjaja koji ce se pojaviti na stranici. u fajlu prikaz.php se nalazi funkcija koja prihvata gornje promenljive iz zagrade: Pocetak funkcije koji je najbitniji za ovo sto meni treba ako se ne varam: Code: function arhiva($broj, $kategorija = ' ') Dakle $broj ce prikazati 10 najnovijih dogadjaja iz baze kako je definisano, a $kategorija ostavlja prazno kako bi izlistali sve dogadjaje iz svih kategorija. Ako se u zagradu posle broja doda: Code: arhiva(10,ime_kategorije); sistem ce prikazati 10 dogadjaja iz SAMO navedene kategorije. Ja zelim da definisem za prikaz arhive da se iz baze vuku XY dogadjaja SAMO BEZ prikaza jedne, imenovane kategorije odnosno polja. Dakle zelim da mi upit vrati sve redove iz neke tabele ISKLJUCUJUCI samo jedan red koji ne zelim da se prikaze u upitu. Da ponovim, direktno na bazi to se postize vrlo lako upitom: Code: SELECT * FROM `dogadjaji_news` WHERE kategorija_name NOT LIKE 'sajt_aktuelno'; Ali mi problem pravi gde da ovaj upit implementiram, (NOT LIKE deo) da li u fajl prikaz.php gde je funkcija za prihvatanje promenljivih ili u sam prikaz stranice posle broja 10? Probao sam ali mi uvek javlja gresku na toj liniji... Oci mi ispadose od guglanja za EXCEPT klauzulom medjutim izgleda to ne f-nise tj. ne postoji u SQL-u? Nabasao sam jedva na ovo: Citat: A compound SELECT is formed from two or more simple SELECTs connected by one of the operators UNION, UNION ALL, INTERSECT, or EXCEPT. EXCEPT Clause The EXCEPT clause has this general form: select_statement EXCEPT [ ALL ] select_statement select_statement is any SELECT statement without an ORDER BY, LIMIT, or FOR UPDATE clause. The EXCEPT operator computes the set of rows that are in the result of the left SELECT statement but not in the result of the right one. The result of EXCEPT does not contain any duplicate rows unless the ALL option is specified. With ALL, a row that has m duplicates in the left table and n duplicates in the right table will appear max(m-n,0) times in the result set. Multiple EXCEPT operators in the same SELECT statement are evaluated left to right, unless parentheses dictate otherwise. EXCEPT binds at the same level as UNION. Ako se ne varam mozda moze nesto i sa operandom: <> (Not equal) ali mi nesto ne ide najbolje a i preumoran sam trenutno.. Nadam se da ce neko iskusan znati o cemu se ovde radi... isto se nadam da sam dobro i detaljno objasnio sve... ako treba mogu jos detalja da postujem. |