Cześć,
mam formularz, w którym podaje dane, a skrypt ma utworzyć zapytanie do bazy. Rozwiązałem to w nastepujący sposób:
$this->_zapytania
= array("nazwa"=> addslashes(trim($_POST['nazwa'])), "kwotaod" => floatval(($_POST['kwotaod'])), "kwotado" => floatval(($_POST['kwotado'])), "tytul"=>addslashes
(trim($_POST['tytul'])));
$sql = "SELECT * FROM platnosci WHERE ";
if(!empty($this->_zapytania
['nazwa'])) { $sql = $sql."nazwa LIKE '%".$this->_zapytania['nazwa']."%' ";
}
if(!empty($this->_zapytania
['kwotaod']) AND
!empty($this->_zapytania
['kwotado'])) { $sql = $sql."AND kwota BETWEEN ".$this->_zapytania['kwotaod']." AND ".$this->_zapytania['kwotado']." ";
}
if(!empty($this->_zapytania
['kwotaod']) AND
empty($this->_zapytania
['kwotado'])) { $sql = $sql."AND kwota >= ".$this->_zapytania['kwotaod']." ";
}
if(empty($this->_zapytania
['kwotaod']) AND
!empty($this->_zapytania
['kwotado'])) { $sql = $sql."AND kwota <= ".$this->_zapytania['kwotado']." ";
}
if(!empty($this->_zapytania
['tytul'])) { $sql = $sql."AND tytul LIKE '%".$this->_zapytania['tytul']."%' ";
}
i owszem, działa. Jednak czy jest inne rozwiązanie, bardziej optymalne, bo wydaje mi się że powyższe nie jest do końca dobre biorąc pod uwagę ilość instrukcji.
Pozdrawiam!