Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][PHP]Inne rozwiązanie tworzenia zapytania
Winters4TW
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.12.2010

Ostrzeżenie: (0%)
-----


Cześć,

mam formularz, w którym podaje dane, a skrypt ma utworzyć zapytanie do bazy. Rozwiązałem to w nastepujący sposób:

  1. $this->_zapytania = array("nazwa"=> addslashes(trim($_POST['nazwa'])), "kwotaod" => floatval(($_POST['kwotaod'])), "kwotado" => floatval(($_POST['kwotado'])), "tytul"=>addslashes(trim($_POST['tytul'])));
  2.  
  3. $sql = "SELECT * FROM platnosci WHERE ";
  4.  
  5. if(!empty($this->_zapytania['nazwa'])) {
  6. $sql = $sql."nazwa LIKE '%".$this->_zapytania['nazwa']."%' ";
  7. }
  8. if(!empty($this->_zapytania['kwotaod']) AND !empty($this->_zapytania['kwotado'])) {
  9. $sql = $sql."AND kwota BETWEEN ".$this->_zapytania['kwotaod']." AND ".$this->_zapytania['kwotado']." ";
  10. }
  11. if(!empty($this->_zapytania['kwotaod']) AND empty($this->_zapytania['kwotado'])) {
  12. $sql = $sql."AND kwota >= ".$this->_zapytania['kwotaod']." ";
  13. }
  14. if(empty($this->_zapytania['kwotaod']) AND !empty($this->_zapytania['kwotado'])) {
  15. $sql = $sql."AND kwota <= ".$this->_zapytania['kwotado']." ";
  16. }
  17. if(!empty($this->_zapytania['tytul'])) {
  18. $sql = $sql."AND tytul LIKE '%".$this->_zapytania['tytul']."%' ";
  19. }


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!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Winters4TW
post
Post #2





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.12.2010

Ostrzeżenie: (0%)
-----


No właśnie dopiero uczę się obiektówki, więc co zastosować aby było bardziej obiektowo niż strukturalnie?

Dzięki za błąd! (IMG:style_emoticons/default/wink.gif)
Teraz zauważyłem że jak nie zostanie podana nazwa to też będzie błąd, więc nie do końca kod jest dobry mimo wszystko.

Ten post edytował Winters4TW 10.10.2015, 13:01:13
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 18:41