1

Temat: Dynamiczne Przeszukiwanie Bazy

Witam serdecznie, zwracam się o pomoc w rozwiązaniu problemu, z którym przyszło mi się zmierzyć, proszę o pomoc. Sytuacja wygląda następująco.

mam formularz:

<input type="text" name="miasto"/>
<input type="text" name="wojewodztwo" />
<input type="text" name="pasmo" />

składający się z 3 okienek do wpisania (nie wszystkie muszą być uzupełnione!)... jak zrobić wyszukiwanie w funkcji postgresql aby wyszukał załóżmy wpisane w formularz miasto, zaś innym razem wpisane w formularz np: pasmo i województwo.

W gruncie rzeczy chodzi mi o takie dynamiczne wyszukiwanie w zapytaniu, że raz będzie uzupełnione jedno pole (pozostałe dwa będą puste!) innym dwa a jeszcze innym 3... czy kos wie jak to zrobić ?


czy koniecznie muszę użyć warunków w funkcji ??

2

Odp: Dynamiczne Przeszukiwanie Bazy

jeśli formularz zwraca ci wartość pusta to podstawiasz do selecta ciąg '%' w przeciwnym wypadku w masz dwie drogi jeśli chcesz by użytkownik szukał po fragmencie nazwy to podstawiasz '%nazwa_miasto%' a jesli ma szukac po całej nazwie to podstaw 'nazwa_miasta'

poniżej przykład - klauzula with służy tylko do symulacji danych w tabeli

with tabela (id ,miasto ,wojewodztwo , pasmo ) as (values
(1::int,'a','mazowieckie','1'),
(2,'b','Mazowieckie','1'),
(3,'c','małopolskie','1'),
(4,'d','Małopolskie','1'))
select * from tabela where miasto ilike '%a%'
                       and wojewodztwo ilike '%mazow%'
                       and pasmo ilike '%%';