![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 1 Dołączył: 2.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Krótko o co mi chodzi:
mam zapytanie z bazy mySql, które wybiera mi rekordy, gdzie w kolumnie opis znajdzie ciąg zadany z formularza np %Szkoła wyższa% CODE SELECT opis from jakas_tabela WHERE opis like %string z formularza% Mysql domyślnie ignoruje wielkości liter (i bardzo dobrze) Meritum: Chcę znalezione słowo opisu zaznaczać dodatkowym stylem CSS Wpadłem na proste rozwiązanie: CODE str_replace($string_z_formularza, '<span style="color: red;">'.$string_z_formularza.'</span>', $calosc_opisu_z_bazy) Jednak ma to jedną wadę szukane wyrażenie musi "trafić" w wielkość liter jakie są w bazie danych: Czyli - w bazie opis jest np. "test test test test Szkoła Wyższa test test test" Str_replace oczywiście przyniesie skutek (i doda klase CSS) tylko jeżeli będziemy wyszukiwać ze zgodnością wielkości liter: "Szkoła Wyższa" Jeżeli wpiszemy "szkoła wyższa" - niestety (IMG:style_emoticons/default/sad.gif) Mysql zwróci wynik, ale str_replace nie wykona swojego zadania. Prosiłbym o jakiś pomysł jak to najlepiej rozwiązać: W ostateczności możnaby "podnosić" wielkość znaków całego opisu z bazy jak i wyrażenia z formularza, ale to skutkowałoby "podniesieniem" i wyświetleniem całego opisu w wielkich znakach, a tego chciałbym uniknąć. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 1 Dołączył: 2.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jednak nie działa mi coś to jak należy:
Napisze moje zastosowanie: CODE $zm = 'sdsd Test slsldjk'; $szukana = 'test'; $zm2 = $this->ext_str_ireplace($szukana,'<span style="background-color: yellow;">'.$szukana.'</span>',$zm); echo $zm2; Wynik to: sdsd test slsldjk Zamiast: sdsd Test slsldjk Dla uzupełnienia dodam, że wcześniejsza funkcja z przykładu manuala działa poprawnie: function highlightStr($haystack, $needle, $highlightColorValue) Ten post edytował sonicius 14.10.2009, 21:49:32 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 13:02 |