Zobacz temat
Sortowanie wg pola w tabeli nie działa poprawnie
|
|
lomcskw |
Dodany dnia 25.05.2009 21:28:25
|
Przedszkolak Postów: 37 Ostrzeżeń: 1 v7.01.05 Data rejestracji: 28.03.2008 09:10 |
Witam! Na stronie http://www.lokw.e... jest lista absolwentów. Niestety, nie umiem ustawić w zapytaniu SQL do bazy poprawnego sortowania wg nazwiska, póki co baza sortuje wg id. Rozwiązanie takie ma jedną wadę - lista absolwentów jest wprowadzona w odpowiedniej kolejności, ale zmiana nazwiska (np. poprawienie błędnej jego pisowni) powoduje, że pole id przestaje dawać poprawną kolejność. Jeśli ustawię sortowanie wg nazwiska - otrzymam kolejność Ż, a potem A itd... Aby obejrzeć przykładowe błędy kolejności wystarczy wybrać rocznik 1972. Pozdrawiam Andrzej |
|
|
Wścibski Gość |
Dodany dnia 24.11.2024 22:17:28
|
Pan Kontekstualny Postów: n^x Data rejestracji: Zawsze |
|
IP: localhost | |
kefirek |
Dodany dnia 26.05.2009 10:53:14
|
Zaawansowany Postów: 1191 Pomógł: 418 Ostrzeżeń: 1 v6.00.xxx Data rejestracji: 06.04.2008 21:59 |
Daj w zapytaniu ORDER BY nazwiska |
|
|
lomcskw |
Dodany dnia 26.05.2009 11:13:33
|
Przedszkolak Postów: 37 Ostrzeżeń: 1 v7.01.05 Data rejestracji: 28.03.2008 09:10 |
Ale właśnie o to chodzi, że jeśli tak zrobię - dostaję nieprawidłową kolejność (tak jak napisałem - najpierw litery Ż, potem A itd...). Myślę, że to ma związek z kodowaniem znaków w bazie i tabeli, wszędzie jest UTF8 i metoda porównywania utf8_unicode_ci. Gdzieś chyba widziałem dodatkowe polecenia sql-a wprowadzane do plików, tuż po nawiązaniu połączenia z bazą, ale mam obawy, czy to nie namiesza w istniejących danych (artykuły, newsy itp...). Pozdrawiam - Andrzej |
|
|
piotrek199214 |
Dodany dnia 26.05.2009 16:12:36
|
Bywalec Postów: 977 Pomógł: 168 v7.01.05 Data rejestracji: 17.12.2007 21:05 |
Daj tak: ORDER BY nazwiska ASC
Pomogłem Ci? Wystarczy podziękować i oznaczyć post jako pomocny Tanie tworzenie wtyczek, masz problem napisz. |
|
|
lomcskw |
Dodany dnia 27.05.2009 08:25:20
|
Przedszkolak Postów: 37 Ostrzeżeń: 1 v7.01.05 Data rejestracji: 28.03.2008 09:10 |
W zapytaniu mam tak: a wolałbym mieć tak: bo wtedy nawet po zmiw z poszczególnych klas będzie posortowana alfabetycznie, a nie nazwiska (poprawki błędów) lista absolwentów. Edytowane przez hoopak dnia 27.05.2009 17:43:13 |
|
|
piotrek199214 |
Dodany dnia 27.05.2009 17:41:45
|
Bywalec Postów: 977 Pomógł: 168 v7.01.05 Data rejestracji: 17.12.2007 21:05 |
Mi chodziło tylko o to abyś dał ASC i tyle. A szkic taki jak kefirek. Pozdro Pomogłem Ci? Wystarczy podziękować i oznaczyć post jako pomocny Tanie tworzenie wtyczek, masz problem napisz. |
|
|
lomcskw |
Dodany dnia 27.05.2009 21:23:27
|
Przedszkolak Postów: 37 Ostrzeżeń: 1 v7.01.05 Data rejestracji: 28.03.2008 09:10 |
Może jeszcze raz. Nie chodzi mi o to jak zbudować zapytanie w sql-u. To umiem zrobić Chciałem powiedzieć, że nie chce prawidłowo działać sortowanie listy absolwentów w przypadku gdy wyświetlani są absolwenci z jednego roku. W tabeli absolwenci są pola id, nazwisko, imię, rok i klasa (to ostatnie przechowuje literki a, b, c...). Zapytanie wybiera jeden rocznik i sortuje wynik wg klasy, nazwiska i imienia. Niestety efekt sortowania po nazwisku jest niepoprawny (litera Ż na początku, a potem A itd...). Dlatego na razie mam sortowanie wg id (nr kolejny absolwenta w tabeli). Wszystko byłoby ok, gdyby nie fakt, że czasem trzeba poprawić pisownię nazwiska (zwłaszcza dla starszych roczników, gdzie zdarzają się błędy). Wtedy kolejność wg id nie jest już poprawna (np. zmiana z Kadelski na Kudelski). Sortowanie wg nazwiska dawałoby zawsze alfabetycznie posortowaną listę, nawet po poprawkach. Ponawiam zatem pytanie - dlaczego to nie działa? Pozdrawiam - Andrzej Edytowane przez Chemikpil dnia 28.05.2009 23:04:34 |
|
|
piotrek199214 |
Dodany dnia 28.05.2009 08:27:49
|
Bywalec Postów: 977 Pomógł: 168 v7.01.05 Data rejestracji: 17.12.2007 21:05 |
- sprawdź tak. Bo rozumiem że chciałbyś tak: lecz coś Ci nie działa. Pomogłem Ci? Wystarczy podziękować i oznaczyć post jako pomocny Tanie tworzenie wtyczek, masz problem napisz. |
|
Przejdź do forum: |