![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 1 Dołączył: 27.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Czy da się jakoś posortować wyciągnięte dane alfabetycznie ale tak aby nie brało pod uwagę czy to duża czy mała litera?
mam tak:
i sortuje tak Allegro Books Czytaj Zegarki e-Cyfrowe eBay inBook Świat Książki a powinno: Allegro Books Czytaj e-Cyfrowe ebay Świat Książki Zegarki |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
prawdopodobny problem, to polskie litery (ś).
rozwiązania: 1. w tabeli dodaj pole np. 'lp', gdzie sam będziesz ustalał kolejność i sortuj po tym polu. 2. zamieniaj polskie znaki na ich odpowiedniki bez ogonków z wykorzystaniem ereg_replace lub str_replace i dopiero wtedy sortuj w zapytaniu. pzdr marcin Ten post edytował mpps 18.05.2008, 12:23:44 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 1 Dołączył: 27.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
ok. ale mi nie chodzi o polskie znaki (to był tylko przykład)
chodzi o to że najpierw sortują sie wyrazy z wielkiej litery a potem z małej, a ja chciałbym aby sortowało sie bez względu na wielkość liter |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
strtolower i wtedy dopiero sortuj
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 1 Dołączył: 27.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
a można jakimś zapytaniem zmienić wszystkie nazwy z tabeli nazwa na duże znaki? jakim?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 1 Dołączył: 27.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
dobre
ale to tylko zmienia wyświetlanie a mi chodzi aby zmieniło samo się w bazie skoro nie da się posortować z różnymi literkami |
|
|
![]()
Post
#10
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
funkcja upper na duże i lower na małe...
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
'samo' w bazie się nie zmieni (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
napisz sobie skrypt w PHP, który pobierze Ci dane z bazy, zamieni je wg potrzeb i zapisze spowrotem w bazie. oczywiście jeśli ilość danych w bazie jest tego warta... |
|
|
![]()
Post
#12
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 1 Dołączył: 27.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#14
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#15
|
|
Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 1 Dołączył: 27.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
@ActivePlayer - dzięki pomogło
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
a dla mnie temat pozostaje...
po co obciążać serwer dodatkowym zadaniem? |
|
|
![]()
Post
#18
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
może po to aby uzyskać oczekiwany efekt? nie do końca się uzyska zamierzony efekt, ponieważ dalej pozostanie sprawa polskich znaków diakrytycznych. samo UPPER() posortuje, ale nazwy z polskimi znakami na początku będą na końcu, zamiast w szeregu zgodnie z (polskim) alfabetem... nie sprawdzałem, ale mam wrażenie, że się nie mylę |
|
|
![]()
Post
#20
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
oślepli chyba wszyscy w tej dyskusji. rozwiązanie stoi ja wół, podane na tacy w moim poprzednim poście - bezpośrednio pod pytaniem...
chociaż najwłaściwsze rozwiązanie, to ustawić dla tego pola w tabeli (np. przez phpMyAdmin) Column Charset: utf8, Column Collate: utf8_polish_ci. wtedy zwykły SELCET z ORDER BY zwróci odpowiednio poustawiane wiersze ... wystarczy również samo ustawienie Column Charset, bo Collate można już sobie zadawać bezpośrednio w SQL jak pokazałem wcześniej (ale jest to mniej wydajne rozwiązanie, jeżeli mamy na tym polu indeks...) ABSOLUTNIE NIE MA POTRZEBY robienia jakichś dziwnych uników z UPPER() LOWER() czy innymi funkcjami. po to wprowadzono Charset UTF8 oraz Collation m.in. polish_ci (ci to znaczy case insensitive - bez względu na wielkość liter...) żeby można było poprawnie sortować dane w języku polskim (oraz wielu innych). pozdrawiam i życzę powodzenia. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 02:05 |