[sql] ...ORDER BY miasto |
[sql] ...ORDER BY miasto |
8.04.2002, 19:05:20
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? |
|
|
16.04.2002, 19:24:38
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
Mozna by np.: zamienic pierwsza litere na jej odpowiednik w alfabecie ang. np.: ł na l itd. A wlasciwa litere przesunac na koniec
przyklad: Łódź -> LódźŁ Potem przy wypisywaniu danych zamienić pierwszy znak na ostatni. 8) Wiem, ze to rozwiazanie ma kilka wad , ale chyba moze sie przydac :wink: |
|
|
16.04.2002, 20:09:02
Post
#3
|
|
Grupa: Zarejestrowani Postów: 268 Pomógł: 0 Dołączył: -- Skąd: kielce Ostrzeżenie: (0%) |
A moze tak:
ł na -l ą na -a ż na -z ź na --z itd... a potem (przy wyciaganiu z bazy) zamieniac z powrotem? |
|
|
16.04.2002, 21:23:54
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
nieeeee... bedzie zalatwo
|
|
|
17.04.2002, 07:27:51
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
Cytat A moze tak:
ł na -l ą na -a ż na -z ź na --z itd... a potem (przy wyciaganiu z bazy) zamieniac z powrotem? Nie sadze, zeby to bylo dobre rozwiazanie. Przy sortowaniu beda zle wyniki. |
|
|
17.04.2002, 13:27:01
Post
#6
|
|
Grupa: Zarejestrowani Postów: 268 Pomógł: 0 Dołączył: -- Skąd: kielce Ostrzeżenie: (0%) |
:idea: To to moze tak: :wink:
zdublowac pole znazwa, jedna zeby byla bez polskich liter (lodz) a druga z... a sortowac wedlog tego pola bez polskich znakow :?: |
|
|
20.04.2002, 11:03:24
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) |
Cytat Białystok, Lublin, Warszawa, Łódź ; powinno byc Białystok, Lublin, Łódź, Warszawa...
ktos ma pomysl jak zrobic aby rozroznialo polskie znaki? ustaw odpowiedni jezyk w bazie - use default encoging czy charset o ile mnie pamiec nie myli -------------------- .. make web your home ..
|
|
|
22.04.2002, 23:45:47
Post
#8
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%) |
kurtz jako jedyny napisal cos sensownego dzieki
|
|
|
4.06.2002, 08:51:49
Post
#9
|
|
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 -------------------- misiu | chór
"Zdeterminowany programista potrafi stworzyć fatalny kod w każdym języku" Allen Holub |
|
|
22.06.2002, 15:15:01
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 22.06.2002 Skąd: Szczecin Ostrzeżenie: (0%) |
witam.
jak wprowadzic w zycie podpowiedz kuritza -------------------- Pozdrawiam Sergio
#GG: 141265 |
|
|
23.06.2002, 11:23:43
Post
#11
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 0 Dołączył: -- Skąd: W - WA -> GRO Ostrzeżenie: (0%) |
Cytat witam.
jak wprowadzic w zycie podpowiedz kuritza W winshitie masz plik my.cnf i wpisujesz sobie cos takiego: Kod default-character-set=latin1
PS Dane tez musisz miec zapisane z tym kodowaniem, bo inaczej cala zmiana kodowania nic nie da. -------------------- Zanim zadasz pytanie, zawsze wczesniej zajrzyj do manuala ( pl.php.net/manual/pl/ ).
Szukasz skryptow - www.hotscripts.com |
|
|
25.06.2002, 07:50:38
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) |
Znajdź u siebie plik my.cnf (u mnie jest w /etc/ ale u Ciebie niekoniecznie) i znajdź sekcję [mysqld]. Musi się tam znaleźć następujący zapis:
Cytat default-character-set = latin2
language = polish Z moich doświadczeń wynika, że pomaga na wszelkie problemy z językiem w MySql, z sortowaniem włącznie. Tylko nie zapomnij zmusić serwer do odświeżenia konfiguracji. :wink: -------------------- cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
|
|
|
25.06.2002, 08:17:41
Post
#13
|
|
Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) |
Hhh... sorki, nie przerzuciłem strony i nie zauważyłem, że gajcy2 już odpowiedział.
[quote]P: To ten. K: Jak to, too teen? Chcesz powiedzieć, że ten obiekt znajduje się w zasięgu mojego wzroku? Pokaż go to palcem bo chciałbym uwierzyć, że śnię. P: No to... K: To?! Co to jest?! P: No jak to co? Las... K: Możesz mi powiedzieć... Po chuj mi las? P: Jak to po chuj? W scenopisie pisze, że las. Jest napisane. K: W scenopisie?! Znjadź mi to w scenopisie! P: Proszę. Kiedy wyjechali na wyniosłość drogi, oczom ich ukazał się las. K: Przewróć stronę. P: O kurwa... K: Czytaj. P: Oczom ich ukazał się las... Krzyży.[/quote] Hyper, tylko nie wywalaj do Hydeparku, tak mi się skojarzyło :wink: I sorki za wyrażenia ale bez nich to by nie było to samo. A tak na marginesie Gajcy2, na pewno latin1? U mnie ustawiłem latin2 i wszystko jest ok. Muszę to sprawdzić...[/quote] -------------------- cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
|
|
|
25.06.2002, 10:33:24
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 22.06.2002 Skąd: Szczecin Ostrzeżenie: (0%) |
ja ustawilem na czech poniewaz wedlug mnie jest najbardziej zblizony do polskiego :-)
-------------------- Pozdrawiam Sergio
#GG: 141265 |
|
|
5.01.2003, 20:28:18
Post
#15
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 18.03.2002 Ostrzeżenie: (0%) |
Cytat ja ustawilem na czech poniewaz wedlug mnie jest najbardziej zblizony do polskiego :-)
bardziej od polskiego 8) -------------------- Pozdrawiam
Krzysztof |
|
|
26.05.2003, 09:10:23
Post
#16
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
Cytat I znajdź sekcję [mysqld]. Musi się tam znaleźć następujący zapis:
Co może być przyczyną, że podczas uruchamiania demona otrzymuję taki błąd: Cytat default-character-set = latin2
language = polish Cytat 030526 10:13:16 mysqld started
No variable match for: -O 'default-character-set = latin2' /usr/local/mysql/bin/mysqld Ver 3.23.56 for pc-linux on i686 Use '--help' or '--no-defaults --help' for a list of available options 030526 10:13:16 mysqld ended -------------------- |
|
|
26.05.2003, 11:53:09
Post
#17
|
|
Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) |
Cytat Co może być przyczyną, że podczas uruchamiania demona otrzymuję taki błąd:
Cytat 030526 10:13:16 mysqld started
No variable match for: -O 'default-character-set = latin2' /usr/local/mysql/bin/mysqld Ver 3.23.56 for pc-linux on i686 Use '--help' or '--no-defaults --help' for a list of available options 030526 10:13:16 mysqld ended http://www.mysql.com/doc/en/Character_sets.html twierdzi ze prawidlowa sekcja jest [client] a nie mysqld! na poczatek sprobuj tego ;) ps jesli dobrze koajrze mowiles ze masz slacka - sprawdz czy masz confa w /usr/share/mysql/charsets pozdrawiam -------------------- .. make web your home ..
|
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 18:54 |