Ukoliko formu generišeš dinamički potrebno je da napraviš funkciju koja će proveravati polja u zavisnosti od tipa polja (select, multiselect, da li je u pitanju broj itd.).
MySQL upit takođe praviš dinamički u zavisnosti od filtera pretrage. Na primer osnovni upit je:
Code:
SELECT * FROM proizvodi WHERE ID>=1
I onda proveravaš svako polje:
Code:
$sql = "";
if (strlen($proizvodjac)>=2 ) { $sql.="AND proizvodjac = '".$proizvodjac."' "; }
if ($cena1>=1 AND is_numeric($cena1) ) { $sql.="AND cena>= '".$cena1."' "; }
if ($cena2>=1 AND is_numeric($cena2) AND $cena2>$cena1) { $sql.="AND cena<= '".$cena2."' "; }
itd...
Na osnovu toga dobijaš filtrirane rezultate. Što je više unosa filtrirano upit će biti "precizniji".
Ako korisnik upiše samo DO cenu dobićeš sledeći upit:
Code:
SELECT * FROM proizvodi WHERE ID>=1 AND cena<= '".(int)$cena2."'
Ako označi proizvođača npr HP, 'cenu od' i 'HDD' upit će biti:
Code:
SELECT * FROM proizvodi WHERE ID>=1
AND proizvodjac = '".$proizvodjac."
AND cena>= '".(int)$cena1."'
AND hdd>= '".(int)$hdd."'
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};