Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwarka ceny od - do
Forum PHP.pl > Forum > PHP
sigal2006
Napisałem sobie bardzo prosty skrypcik wyszukiwania

  1.  
  2. $cenaod=$_GET['cenaod'];
  3. $cenado=$_GET['cenado'];
  4.  
  5. if($cenaod && $cenado){$wpiscenaoddo="AND ogl_cena BETWEEN '".$cenaod."' AND '".$cenado."' ";}
  6. elseif($cenaod){$wpiscenaoddo="AND ogl_cena BETWEEN '".$cenaod."' AND '100000000000' ";}
  7. elseif($cenado){$wpiscenaoddo="AND ogl_cena BETWEEN '0' AND '".$cenado."' ";}
  8. else{$wpiscenaoddo="";}
  9.  
  10.  


oczywiście $wpiscenaoddo wpisuje odpowiednie dane do sql_select.

Jak dodane cenę tylko górną $cenado jest ok , problem pojawia się jednak jest jak chce pobrać rekordy w cenach od do oraz tylko od

może ktos mi poriadzi gdzie jest błą albo może jaką inną metodą mogę wykonać coś takiego próbowałem z operatorami matematycznymi ale nei działało

Ok doszedłem sam typ pola sql był Text zamiast INT
Fifi209
W dodatku do zapytania podajesz jako string bo w cudzysłowach ;-)

Skrypt podatny na SQL Injection
sigal2006
czyli jak zmienić aby było bardziej bezpieczne podaj tylko przykład sma sobie dalej poradzę
MatKus
Po pierwsze, zabezpiecz się przed SQL Injection i podobnymi sprawami. Nigdy nie wstawiaj na żywca danych z formularzy czy ciasteczek, bo ktoś złośliwy ci wstawi własny fragment kodu do zapytania i namiesza.

  1. $cenaod=(float)$_GET['cenaod']; // upewniamy się, że ktoś nie wpisał ceny "abc" albo, co gorsza, jakiegoś kodu SQL do wykonania
  2. $cenado=(float)$_GET['cenado'];
  3.  
  4. $wpiscenaoddo='';
  5. if ($cenaod!=0) $wpiscenaoddo.='AND ogl_cena>'.$cenaod;
  6. if ($cenado!=0) $wpiscenaoddo.='AND ogl_cena<'.$cenado;


albo opcja 2, w tym wypadku mniej zalecana, bo ceny to liczby i tak też należało by je traktować, ale w przypadku typowego powinno lepiej działać:

  1. $cenaod=$_GET['cenaod'];
  2. $cenado=$_GET['cenado'];
  3.  
  4. $wpiscenaoddo='';
  5. if ($cenaod!=0) $wpiscenaoddo.='AND ogl_cena>"'.mysql_real_escape_string($cenaod).'"';
  6. if ($cenado!=0) $wpiscenaoddo.='AND ogl_cena<"'.mysql_real_escape_string($cenado).'"';
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.