Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sortowanie wg. polskich znaków
tsharek
post 30.09.2004, 11:50:47
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


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
misterLu
post 6.10.2004, 09:55:42
Post #2





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
Go to the top of the page
+Quote Post

Posty w temacie


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 - 21:08