![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 17.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam takie problem i nie wiem za bardzo jak go rozwiązać. Mam tebelę [ID] [Type] [Size1] [Size2] [Size3]. Mam formularz z polami [Type] [Size1] [Size2] [Size3] i chcę, żeby użytkownik jeśli poda tylko "Type" będzie mógł przeszukać tabelę tylko dla tego ciągu znaków (tutaj żadnej filozofii nie ma) chcę jednak, żeby użytkownik mógł zawężać wyniki - żeby mógł wpisać oprócz "Type" , np. "Size1" albo "Size1", "Size2" i "Size3". Mam takie zapytanie $zapytanie = "select * from tabela where type like '%".$type."%' "; jeśli nie wpiszę type (formularz pusty) i dam szukaj to wypisze mi wszystkie rekordy. Wydawało mi się załatwię to takim zapytaniem, no ale niestety chyba że mam jakiś głupi błąd no albo złą logikę obrałem :/ $zapytanie = "select * from tabela where type like '%".$type."%' and size1 like '%".$size1."%' and size2 like '%".$size2."% and size3 like '%".$size3."%"; Pozdrawiam i z góry dziękuję za pomoc -------------------------------------------------------------------------------------- Ok mam coś takiego i działa ale to dopiero dwa pola dla pięciu warunków będzie 25 ? Jest jakiś bardziej optymalny sposób ? if (($type != '')&&($size_1 == 0)) { $zapytanie = "select * from table where type like '%".$type."%'"; } if (($size_1 != 0) && ($type =='') ) { $zapytanie = "select * from table where size_1 = $size_1 "; } if ((!$type =='') && (!$size_1 == 0)) { $zapytanie = "select * from table where type like '%".$type."%' and size_1 = $size_1 "; } Ten post edytował Jeffu 18.08.2010, 19:12:29 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Musisz jeszcze zadbać o czyszczenie danych z ciapków, etc.
Wracając do samego podejścia do konstrukcji warunków to na szybko możesz zrobić tak:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 17.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź. Mam pytanko - Czy przez czyszczenie z ciapek rozumiesz zastosowanie np. takiej konstrukcji uniemożliwiającej wstrzyknięcie kodu ?
$zmienna = htmlspecialchars(stripslashes(strip_tags(trim($zmienna))), ENT_QUOTES); co do przedstawionego przez Ciebie sposobu to mam problem w połączeniu kodu z kodem klasy pager (napisanej przez nospora). Próbowałem już różnych tworów ale coś mi to nie wychodzi (IMG:style_emoticons/default/sad.gif) . Będę wdzięczny za pomoc.
Ten post edytował Jeffu 28.08.2010, 11:34:46 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.09.2025 - 11:44 |