[ Pavleg @ 31.08.2007. 14:50 ] @
Kako bi trebao da izgleda ovaj upit: Code: SELECT apartmani.ime_apartm, apartmani.glavni_opis,apartmani.lokacija, opisi.dodatni_opisi FROM apartmani LEFT JOIN opisi ON apartmani.id_apartm=opisi.id_apartm WHERE apartmani.ime_apartm LIKE '%$pretr%' OR apartmani.glavni_opis LIKE '%$pretr%' OR apartmani.lokacija LIKE '%$pretr%' OR opisi.dodatni_opisi LIKE '%$pretr%' GROUP BY apartmani.ime_apartm Ovako sam ga ja zamislio i znam da se ne može tako napisati (OR i ne postoji). U pitanju search forma koja treba da pretraži dvije table (apartmani i opisi) - njihova polja (apartmani.ime_apartm, apartmani.glavni_opis, apartmani.lokacija, opisi.dodatni_opisi) da li sadži reč koja je unesena za pretragu ($pretr). Odgovor na pretragu ne bi trebao da ima duplikate, odnosno, samo jedan apartman da se izlista od mogućih više razultata za isti apartma. Te dve tabele izgledaju ovako: Code: CREATE TABLE apartmani ( id_apartm INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ime_apartm VARCHAR(25) NOT NULL, glavni_opis TEXT NOT NULL, glavna_slika VARCHAR(50) NOT NULL, kategorija VARCHAR(25) NOT NULL, lokacija VARCHAR(50) NOT NULL, br_kreveta TINYINT NOT NULL, cena REAL NOT NULL, id_kategor INT NOT NULL, UNIQUE (ime_apartm), INDEX (id_kategor), FOREIGN KEY (id_kategor) REFERENCES tip_apartmana(id_kategor) )TYPE = INNODB; CREATE TABLE opisi ( id_opisi INT NOT NULL AUTO_INCREMENT PRIMARY KEY, dodatni_opisi TEXT NOT NULL, dodatne_slike VARCHAR(50) NOT NULL, id_apartm INT NOT NULL, INDEX (id_apartm), FOREIGN KEY (id_apartm) REFERENCES apartmani(id_apartm) ) TYPE = INNODB; |