Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> REGEXP, problem przy wyszukiwaniu...
codo
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 31.10.2004

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


Mam taki problem. Wyszukiwarka ma wyszukiwac obiekty turystyczne po nazwach. Ale z uzglednieniem ze 'Gdańsk'='Gdansk', czyli w wyszukiwarke mozna wpisac tak i tak.
Mam kod:
  1. <?php
  2. function RegExpPl($tekst)
  3. {
  4.  $low=strtr($tekst, array(
  5. 'Ą'=>'ą',
  6. 'Ć'=>'ć',
  7. ''=>'ę',
  8. 'Ł'=>'ł',
  9. 'Ń'=>'ń',
  10. 'Ó'=>'ó',
  11. 'Ś'=>'ś',
  12. 'Ż'=>'ż',
  13. 'Ź'=>'ż'
  14. ));
  15.  
  16.  return strtr($low, array(
  17. 'a'=>'[aą]+',
  18. 'c'=>'[cćk]+',
  19. 'e'=>'[eę]+',
  20. 'l'=>'[lł]+',
  21. 'n'=>'[nń]+',
  22. 'o'=>'[oó]+',
  23. 's'=>'[sś]+',
  24. 'z'=>'[zżź]+',
  25. 'v'=>'[vw]+',
  26. ' '=>' +',
  27. ));
  28. }
  29.  
  30. //// i zapytanie
  31. $name_ex=strtolower(RegExpPl($name));
  32.  $sql="SELECT * FROM ".OBJECTS_TABLE." where LOWER(name) REGEXP '".$name_ex."'";
  33.  
  34. ?>


I wszystko dziala ok dopuki ktos nie wpisze 'busko zdrój'.
mamy wtedy:
  1. SELECT *
  2. FROM objects WHERE LOWER(name) REGEXP 'bu[sś]+k[oó]+ +[zżź]+drój'


czyli problem jest jak wyraz konczy sie na litere ktora wystepuje w tablicy do strtr.

Bardzo prosze o pomoc w rozwiazaniu problemu!
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 Aktualny czas: 22.08.2025 - 05:31