Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PostgreSQL][PHP] Wyszukiwarka - wyrażenia regularne?
Forum PHP.pl > Forum > Przedszkole
Libertine
Cześć!
Uczę się kodzić w php i psql na przykładzie prostego portalu dla kolegi. Ma to być wyszukiwarka połączona z bazą sqlową. Natrafiłem na następujący problem:
chcę żeby po wpisaniu frazy w wyszukiwarkę (powiedzmy że zapisujemy ją do zmiennej '$zmienna'), przeszukiwane były kolumny powiedzmy 'panstwo', 'miasto', 'nazwa', a następnie wynik był prezentowany w takiej formie, że fraza po której przeszukiwano będzie pogrubiona i podświetlona. Czyli na przykład po wpisaniu w wyszukwiarkę 'Kraków' wyświetlają się wszystkie rekordy które mają w którejś z tych kolumn wpisany 'Kraków' i na przykład
państwo: Polska, miasto: Kraków, nazwa: cokolwiek

Udało mi się to zrobić prostymi ifami sprawdzającymi czy wynik wyciągnięty z bazy jest równy $zmienna. Ale później postanowiłem dodać wyszukiwanie za pomocą LIKE '%$zmienna%', czyli przeszukiwanie czy w danych kolumnach rekordu znajduje się ten ciąg znaków wpisany jako $zmienna. No i przy takim przeszukiwaniu to podświetlanie siłą rzeczy nie do końca działa (tzn. po wpisaniu frazy Kra wyświetlą się wszystkie rekordy z wpisanym Krakowem, ale nie będzie on podświetlony). Podejrzewam że muszę skorzystać tu z jakiegoś wyrażenia regularnego. Czy mógłby mi ktoś z tym pomóc albo przynajmniej polecić jakieś dobre materiały na podstawie których uda mi się napisać coś takiego?
mmmmmmm
To nie jest robota SQL, by podświetlać.
Adi32
  1. $string_wynik = preg_replace('/('.$_POST['fraza'].')/i','<span class="fund">\\1</span>',$string_wynik);


  1. .fund {
  2. font-weight: bold;
  3. color: #00FF00;
  4. }


Aby działało z wieloma frazami wydaje mi się, że wystarczyło by dać

  1. $slowa = str_replace(' ','|',$_POST['fraza']);
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.