Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z LOWER i UPPER - wyszukiwanie bez rozróżniania wielkości znaków
piotr94
post 9.08.2010, 18:19:23
Post #1





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


Witam serdecznie!
mam skonstruowany system wyszukiwania na pytaniach typu LIKE
  1. SELECT * FROM tabela WHERE pole LIKE '%wartosc%';

chcę dodać jednak modyfikację, tak aby wyszukiwarka nie rozróżniała wielkości znaków.
wszystko działa, jednak problem stanowią polskie znaki:
  1. mysql> SELECT UPPER('żukowo');
  2. +-----------------+
  3. | UPPER('żukowo') |
  4. +-----------------+
  5. | żUKOWO |
  6. +-----------------+
  7. 1 row IN SET (0.00 sec)

Co w takiej sytuacji najlepiej zrobić?
Z góry dzięki za pomoc.


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wookieb
post 9.08.2010, 18:34:21
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




ustawić kodowanie tabel, pól, połączenia na polskie albo ut8_unicode_ci


--------------------
Go to the top of the page
+Quote Post
piotr94
post 9.08.2010, 20:09:16
Post #3





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


niestety usługodawca klienta nie udostępnia możliwości zmiany kodowania składowania znaków - nadal stoi przestarzałe iso...
Czy jest jakaś inna możliwość oprócz replace, aby tego dokonaćquestionmark.gif


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
wookieb
post 9.08.2010, 20:18:36
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To co ty masz za usługodawce? Syna Hitlera? Sorry ale to do tego służy i powinieneś wymagać takiej zmiany. Inna opcja jest bezsensowna.


--------------------
Go to the top of the page
+Quote Post
piotr94
post 9.08.2010, 20:24:23
Post #5





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


nie moja sprawa jakiego usługodawce wybrał klient...
ale być może uda się zmienić to kodowanie, więc po problemie, bo lokalnie gdy wszystko jest ustawione jak trzeba działa bez zarzutów
EDIT:
działa bez zarzutów, ale tylko w phpmyadmin, przez skrypt php wyrzuca mi takie coś:
Skrypt:
  1. <?
  2. $_POST['g']=stripslashes($_POST['g']);
  3. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  4. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  8. </head><body>
  9. <form action="test.php" method="POST">
  10. <input type="text" name="g" value="<?echo(htmlspecialchars($_POST['g']));?>" style="width:100%;" /><br />
  11. <input type="SUBMIT" value="GO" /><hr />
  12. </form>
  13. <?
  14. mysql_connect('127.0.0.1','piotr94','piotr94');
  15. mysql_select_db('zukowo');
  16. mysql_set_charset('utf8_polish_ci');
  17. if($_POST['g']){
  18. $q=mysql_query($_POST['g']);
  19. echo('<pre>');
  20. while($wynik=mysql_fetch_array($q)){
  21. print_r($wynik);
  22. }
  23. echo('</pre>');
  24. }
  25. ?>
  26. </body></html>

zapytanie: SELECT LOWER('Ż')
wynik:

Array
(
[0] => ?
[LOWER('Ż')] => ?
)
całą baza jest kodowana na utf8_polish_ci, porównywanie znaków także, co jest więc nie tak??

Ten post edytował piotr94 9.08.2010, 21:25:05


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
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: 14.08.2025 - 10:47