Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwanie w bazie na podstawie tekstu
MatKus
post 5.08.2014, 12:10:34
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 3
Dołączył: 27.08.2008

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


Witam

Czy ktoś zna może jakąś klasę/funkcję, która by stworzyła mi fragment zapytania do przeszukiwania bazy?
Przykładowo:
Użytkownik wprowadza tekst:
Jan Kowalski|nowak -warszawa

i na podstawie tego tekstu skrypt by to podzielił na kawałki i wygenerował mi odpowiednie zapytanie, np:
  1. $podzapytanie=funkcja ($tekst, 'osoba');

zwróci np coś takiego

  1. osoba LIKE "%Jan%" AND (osoba LIKE "%Kowalski%" OR osoba LIKE "%nowak%") AND osoba NOT LIKE "%warszawa%"


lub coś w tym stylu.

Oczywiście to można napisać samodzielnie, ale jak by do tego dodać jeszcze cudzysłowy, gwiazdki, nawiasy... to trochę zabawy będzie, a, jak na programistę przystało, jestem leniwy, a coś nie mogę czegoś takiego znaleść w googlachj wink.gif

Ten post edytował MatKus 5.08.2014, 12:11:35
Go to the top of the page
+Quote Post
eloandzej
post 5.08.2014, 13:30:33
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 5.01.2012

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


Możesz napisać funkcję do której będziesz przekierowywał cały tekst a w niej dzielił go na części za pomocą explode() następnie według wartości wykonywał odpowiednie zapytanie SELECT na bazie danych np.:
Tekst : Jan Kowalski|Nowak -Warszawa (- oznacza tutaj nie brać pod uwagę?)

Podzielić to explode:
  1. $MiastoE = explode(" -", $Text);
  2. $Miast = $MiastoE[1];


Itd. w przypadku imienia i nazwiska.
Go to the top of the page
+Quote Post
MatKus
post 6.08.2014, 09:09:54
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 3
Dołączył: 27.08.2008

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


Tak, wiem, poekspolodować po slacji, potem pod-fragmenty po |, uwzględnić minus, ale potem jednak anulować explode, jeśli coś jest od cudzysłowa (np. "jan kowalski" to nie to samo, co "kowalski jan", ale to samo, co "jan" "kowalski") itp.

Wiem, że to można napisać i nie jest to nic trudnego, ale żeby to solidnie zrobić (uwzględnić cudzysłowy, minusy, AND/OR, nawiasy, szukanie w kilku kolumnach and/or), to przynajmniej kilka dni trzeba poświęcić, więc może ktoś zna na to gotowca.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 08:50