![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 300 Pomógł: 1 Dołączył: 22.09.2003 Skąd: Czeladź Ostrzeżenie: (0%) ![]() ![]() |
witam:)
pamiętam coś że ten problem już był poruszany na forum, ale tera szukam i szukam i jakoś nie mogę znaleźć:( otóż jak zmusić mysqla żeby sortował wyniki zapytania wg. polsich znaków. (np. *.order by tekst posortuje mi wg. kolumny tekst, ale to co się zaczyna od polskiego znaku daje na koniec). czy da się coś takiego osiągnąć nie zmieniając konfiguracji mysqla? czy da się to zrobić tylko z poziomu php? mam mysqla odpalonego na windowsie 2000, ale sortowanie powinno działać wszędzie:). z góry dziękiuję za odpowiedź pozdrawiam tsharek Ten post edytował tsharek 30.09.2004, 11:51:41 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 848 Pomógł: 0 Dołączył: 7.07.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Możesz oczywiście dać "ORDER BY tekst DESC", ale wtedy znaki A-Z da Ci również w odwróconej kolejności... pokombinuj coś z funkcją ereg
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 300 Pomógł: 1 Dołączył: 22.09.2003 Skąd: Czeladź Ostrzeżenie: (0%) ![]() ![]() |
nie o to mi chodziło:)
chodzi o konfiguracje mysqla z poziomu php:) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 27.08.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat chodzi o konfiguracje mysqla z poziomu php:) Mozesz to sprecyzować? Konfiguracji MySQLa z punktu widzenia php można dokonac w pliku php.ini. |
|
|
![]()
Post
#5
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
my.ini - ustawienia mysql'a
default-charset =Latin2 Powinno IMHO wystarczyć |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 27.08.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat my.ini - ustawienia mysql'a default-charset =Latin2 Powinno IMHO wystarczyć Do czego wystarczyc? Przecież ORDER BY (wykonywane w bazie) nie ma nic wspólnego z tym , jakie kodowanie ustawisz w pliku php.ini. Aby ORDER BY uwzględniał polskie znaki, trzeba mysql'a odpalić z opcją 'default-collation = latin2'. Wtedy będzie sortował 'po polsku'. Ale to nie wszystko. Niektóre indeksy moga już być posortowane domyślną metodą, czyli bez uwzględnienia polskich znaków. Wtedy musisz dla każdej tabeli wykonać komendę: myisamchk -r -q --set-character-set=charset więcej znajdziesz tu: http://dev.mysql.com/doc/mysql/en/Character_sets.html A z poziomu php można to rozwiązać następująco: <? //na początku skryptu setlocale (LC_COLLATE, 'pl_PL'); //zczytać wiersze z bazy do tablicy.. $array=array("zebra", "ananas", "łąka", "laka", "nisko", "ńańka"); //flaga strcoll mówi, ze stringi będą porównywane z uwzględnieniem lokalnych znaków usort($array, 'strcoll'); print_r($array); ?> Ten post edytował misterLu 6.10.2004, 10:24:16 |
|
|
![]()
Post
#7
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Masz całkowitą rację.
Tylko jedna uwaga - mówiłem o my.ini a nie php.ini (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 300 Pomógł: 1 Dołączył: 22.09.2003 Skąd: Czeladź Ostrzeżenie: (0%) ![]() ![]() |
wielkie dzięki za odpowiedzi:) namewno skożystam z rad:) tylko wydawało mi się że może istnieć jakiś sposób zmieniania my.ini z poziomu php (tak jak to się ma dla php.ini) dla pojedyńczego kompilowania kodu php. no ale jak się nie da to sprubuje pogadać z adminem żeby zmienił konfila my.ini.
Pozdrawiam serdecznie |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 06:41 |