Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Porónanie zapytania bez polskich znaków
Forum PHP.pl > Forum > Przedszkole
kkuubbaa88
witam

mam przykładową bazę w której znajdują się wartości z polskimi znakami np:

strzelać, nowy dom, góra, czarno-białe

i teraz po wpisaniu w przeglądarce przykładowych linków:

www.strona.pl/strzelac
www.strona.pl/nowy-dom
www.strona.pl/gora
www.strona.pl/czarno-biale

chcialbym pobrać wartość id rekordu po porownaniu podanej zmiennej z wartoscia w bazie. czy istnieja jakiekolwiek sposoby, aby mozna bylo tego typu wyrazy porownac i odnaleźć ? istnieja jakies funkcje w mysql, aby to działalo ?
kkuubbaa88
nie wiem czy to zda egzamin. wartości z polskimi znakami mam w bazie, a w pasku adresu podaje bez polskich. teraz pobieram wartosc z paska i staram sie pobrac id rekordu, ktory pasuje do tej wartosci bez polskichznakow. chcac wyszukac wartosc z bazy musze dac przykladowo:
  1. SELECT * FROM tablica WHERE kolumna = REPLACE(nazwa_pola,'ąęśćółżźń','aescolzzn') LIMIT 0,1;

co raczej nie działa. jest inny sposob, aby to wyszukac ?
skowron-line
  1. SELECT * FROM tablica WHERE kolumna = REPLACE(nazwa_pola,'ąęśćółżźń','aescolzzn') LIMIT 0,1;

niestety sql to nie php w funkcji replace możesz zamienić tylko jeden znak, więc zmiana tego uciążliwa. Użyj str_replace
qasz
Jeżeli masz bazę w utf8_polish_ci to na pewno będzie działać z LIKE np. SELECT * FROM miasta WHERE miasto like "Krakow" i zwróci ładnie Kraków. Pamiętaj tylko, żeby połączenie do bazy było też w UTF8.
webdice
Poczytaj o COLLATE.
kkuubbaa88
już wcześniej myślałem o like, ale i on nie działa w taki sposób. trzeba podać z polskimi znakami, aby cokolwiek ruszył

a czy collate coś da ? w tabelach mam utf8_polish_ci na stronach kodowanie utf8 i do połączenia uzywam utf8
webdice
Cytat(kkuubbaa88 @ 1.12.2010, 16:44:16 ) *
(...) a czy collate coś da ? (...)


Nie, nabijam sobie posty.
qasz
Cytat(kkuubbaa88 @ 1.12.2010, 16:44:16 ) *
już wcześniej myślałem o like, ale i on nie działa w taki sposób. trzeba podać z polskimi znakami, aby cokolwiek ruszył


Nie prawda, testujesz w php'ie czy phpmyadminie,navicacie ? Sprawdź czy nie masz przypadkiem porównania np. &265; z ę (te 265 wyssane z palca). Mój skrypt to robi i działa na 100%.

kkuubbaa88
testowałem i bezpośrednio w phpadminie oraz z php i niestety like nie wynajduje żadnych rekordów... może powiesz w jaki sposób zrobiłeś, że zadziałało ?

ma ktoś jakiś pomysł ?

questionmark.gif
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.