Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: select z polskimi znakami
Forum PHP.pl > Forum > Bazy danych > MySQL
Koshin
dwa zapytania:

  1. SELECT *
  2. FROM tablica WHERE nazwa = 'KOŃ';



oraz

  1. SELECT *
  2. FROM tablica WHERE nazwa = 'KON';



Zwraca za każdym razem ten sam zestaw rekordów.

Czy istnieje jakaś możliwość na to aby mysql rozrózniał polskie znaki ?

Wersja MYSQL: 4.0.24

Czy mam podać jeszcze jakieś dane, które bedą pomocne w rozwiązaniu tego problemu?

----edit----
Poprawiłem, ale następnym razem proszę używać bbCode, a dokłądnie znaczników [ sql ] w przypadku zapytań.
~mike_mech
marekk
Chciałbym się dołączyć do pytania - ma dokładnie taki sam problem tzn. z wyświetleniem z bazy przy uzyciu SELECT poprawnych wartosci, własnie wówczas gdy występuje m.in. takie słowo z "ń" i "n" na końcu wyrazu.
Prosiłbym o pomoc w tej sprawie.
TomASS
Zgodnie z zaleceniami tego tematu.
  1. SET NAMES latin2;
  2. SET CHARACTER SET latin2;
Koshin
Ale znaki pobieraja sie poprawnie, wszystkie polskie znaki sa widoczne.
chodzi o sam select.

jak w zapytaniu wyslac te polecenia?
marekk
No własnie ja znaki w bazie też mam poprawnie wyświetlane, a nawet przy użyciu przed wszelkich wyciagnaniem tych instrukcji z ustawieniem na latin2 dalej jest problem i nie rozroznia słow z "ń".

A troche juz probowałem tych kombinacji... i sam sie zastanawiam czy napewno w tych SET NAMES i SET CHARACTER tkwi problem... :]


Edit -> A jednak Koshin to jest z tym związane choc mi osobiscie te instrukcje SET NAMES itp. cos nie dzialaja... ale dopisałem sobie na sztywno w my.ini (pod win. ale pod linuxem analogicznie):

[client]
default-character-set=latin2

[mysqld]
default-character-set=latin2

Niestety jesli wystawiasz strone gdzies na serwerze musisz admina poprosic o zmiane.

Ja mam jednak mysql-a jeszcze 4.0.15 i mozliwe, ze dlatego nie dzialają mi te funkcje ale do konca nie jestem pewien.

W kazdym razie jak masz nowszą wersje bodajze od 4.1.X wzwyz to nie musisz zmieniac nic w plikach konfiguracyjnych i wystarczy najprawdopodobniej prawidłowo ustawic kodowanie znaków w danej tabeli (moze tez bazie), z której pobierasz dane, systemu porownan oraz przy wyswietlaniu na stronie (jesli domyslnie nie jest takie jak w bazie - tym SET NAMES itp.). Generlanie mniej wiecej musza one zgadzac (np. latin2) choc sa tez rozne inne warianty z tego co wyczytalem.
sokar
http://forum.php.pl/index.php?showtopic=35966

SET collation_connection = latin2_general_ci
marekk
Ale to wcale nie jest rozwiazanie. Ja probowalem wszelkich ustawien z poziomu php-a ale nestety przy starej wersji mysql-a zadne nie poszlo. A dawalem w roznych kombinacja i pojedynczo i razem m.in:


mysql_query("SET NAMES 'latin2'",$link);
mysql_query("SET CHARACTER SET 'latin2'",$link);

mysql_query("character_set_client=latin2", $link);
mysql_query("character_set_connection=latin2", $link);
mysql_query("character_set_database=latin2", $link);
mysql_query("character_set_results=latin2", $link);
mysql_query("character_set_server=latin2", $link);
mysql_query("collation_connection=latin2_general_ci", $link);
mysql_query("collation_database=latin2_general_ci", $link);
mysql_query("collation_server=latin2_general_ci", $link);

Wszystko zalezy chyba od tego jaka masz wersje mysla-a... bo od nowszej 4.1.X jest wieksze pole manewru i mozliwe, iz wtedy przy oiwyzszych ustaiweniach problemy znikaja.
latet
Cytat(marekk @ 2005-09-28 19:39:39)
mysql_query("SET NAMES 'latin2'",$link);
mysql_query("SET CHARACTER SET 'latin2'",$link);

mysql_query("character_set_client=latin2", $link);
mysql_query("character_set_connection=latin2", $link);
mysql_query("character_set_database=latin2", $link);
mysql_query("character_set_results=latin2", $link);
mysql_query("character_set_server=latin2", $link);
mysql_query("collation_connection=latin2_general_ci", $link);
mysql_query("collation_database=latin2_general_ci", $link);
mysql_query("collation_server=latin2_general_ci", $link);

I tak za każdym razem? Tzn. na początku każdego skryptu odwołującego się do bazy?

latet
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.