Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%)
|
Mam tabele z roznymi danymi a m.in. nazwami miast ktore chce rozmieszczac alfabetycznie. Niestety niektore z miast zaczynaja sie polskimi znakami jak Świnoujscie. Gdy wykonuje zapytanie: select * from tabela order by miasto asc zwraca mi od a-z miasta jednak nie tak jak chcialem... przyklad:
Białystok, Lublin, Warszawa, Łódź ; powinno byc Białystok, Lublin, Łódź, Warszawa... ktos ma pomysl jak zrobic aby rozroznialo polskie znaki? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 31.03.2002 Skąd: Toruń Ostrzeżenie: (0%)
|
W międzyczasie wpadłem na rozwiązanie "skryptowe", w razie, gdyby ktoś nie mógł zmienić konfiguracji.
Kod <?php
$convtab_from_pl = array('ą'=>'a/', 'ć'=>'c/', 'ę'=>'e/', 'ł'=>'l/', 'ń'=>'n/', 'ó'=>'o/', 'ś'=>'s/', 'ź'=>'x/', 'ż'=>'z/', 'Ą'=>'A/', 'Ć'=>'C/', 'Ę'=>'E/', 'Ł'=>'L/', 'Ń'=>'N/', 'Ó'=>'O/', 'Ś'=>'S/', 'Ź'=>'X/', 'Ż'=>'Z/'); // byc moze trzeba bedzie zamienić 'ż' na 'ź' i 'Ż' na 'Ź' $convtab_to_pl = array (); foreach ($convtab_from_pl as $k => $v) { $convtab_to_pl[$v] = $k; } function code_from_pl ($arg) { global $convtab_from_pl; $arg = preg_replace ('/([acelnosACELNOS])/','1 ',preg_replace ('/Z/','X ',preg_replace ('/z/','x ',$arg))); $arg = strtr($arg,$convtab_from_pl); return $arg; } function code_to_pl ($arg) { global $convtab_to_pl; $arg = preg_replace ('/([acelnosACELNOS])s/','1',preg_replace ('/Xs/','Z',preg_replace ('/xs/','z',$arg))); $arg = strtr($arg,$convtab_to_pl); return $arg; } $tekst = array('Łódź', 'Zażółć gęślą jaźń', 'Górsk', 'Łódzki Pcim', 'Lubicz', 'Goszcz', 'Zakopane', 'Grzeszne Myśli'); // przykładowa tablica danych. $n = count($tekst); echo ('Nie posortowane:<br>'); for ($i = 0; $i < $n; $i++) { echo ('<b>'.$i.':</b> '.$tekst[$i].'<br>'); } $temp = $tekst; echo('<br>Posortowane "na prymitywa" (według zasady "<b>z</b>" < "<b>ć</b>"...):<br>'); sort ($temp); for ($i = 0; $i < $n; $i++) { echo ('<b>'.$i.':</b> '.$temp[$i].'<br>'); } echo('<br>Zakodowane:<br>'); // gwóźdź programu - tak zakodowane dane wstawiamy do bazy. w bazie sortujemy najzwyklej w świecie: ORDER BY. for ($i = 0; $i < $n; $i++) { $tekst[$i] = code_from_pl ($tekst[$i]); echo ('<b>'.$i.':</b> '.$tekst[$i].'<br>'); } sort ($tekst); // "symulacja";) ORDER BY echo ('<br>Posortowane poprawnie:<br>'); for ($i = 0; $i < $n; $i++) { echo ('<b>'.$i.':</b> '.(code_to_pl($tekst[$i])).'<br>'); } ?> W ostatniej chwili zauważyłem, że jest jakiś problem w kodowaniu polskich znaków na forum, więc zamieszczam to samo pod adresem http://strony.wp.pl/wp/msulik/php.pl/116/sort.php.html |
|
|
|
em1X [sql] ...ORDER BY miasto 8.04.2002, 19:05:20
Seth Mozna by np.: zamienic pierwsza litere na jej odpo... 16.04.2002, 19:24:38
kryr A moze tak:
ł na -l
ą na -a
ż na -z
ź na --z
itd..... 16.04.2002, 20:09:02
Seth nieeeee... bedzie zalatwo 16.04.2002, 21:23:54
Seth CytatA moze tak:
ł na -l
ą na -a
ż na -z
ź na --z
... 17.04.2002, 07:27:51
kryr :idea: To to moze tak: :wink:
zdublowac pole zna... 17.04.2002, 13:27:01
kurtz Re: ...ORDER BY miasto 20.04.2002, 11:03:24
em1X kurtz jako jedyny napisal cos sensownego dzieki 22.04.2002, 23:45:47
Sergio witam.
jak wprowadzic w zycie podpowiedz kuritza 22.06.2002, 15:15:01
GeoS Cytatwitam.
jak wprowadzic w zycie podpowiedz kur... 23.06.2002, 11:23:43
dragossani Znajdź u siebie plik my.cnf (u mnie jest w /etc/ a... 25.06.2002, 07:50:38
dragossani Hhh... sorki, nie przerzuciłem strony i nie zauw... 25.06.2002, 08:17:41
Sergio ja ustawilem na czech poniewaz wedlug mnie jest na... 25.06.2002, 10:33:24
ftrunks Cytatja ustawilem na czech poniewaz wedlug mnie je... 5.01.2003, 20:28:18
scanner CytatI znajdź sekcję [mysqld]. Musi się tam znaleź... 26.05.2003, 09:10:23
kurtz CytatCo może być przyczyną, że podczas uruchamiani... 26.05.2003, 11:53:09 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 09:03 |