Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Sortowanie liczb i znaków
Forum PHP.pl > Forum > Przedszkole
wree
Witam,

Mam taki problem, pobieram przy sortowaniu, jeżeli ustawie alfabetycznie DESC z bazy to sortuje numery w ten sposób:

przykład 7
przykład 6
przykład 5
przykład 4
przykład 3
przykład 2
przykład 12
przykład 11
przykład 1

w tym że 2 jest mniejsze od 12, więc 12 powinno być wyżej. Jak zmienić by sortowało właściwie? ustawia się to gdzieś w php.ini? Jak to zrobić? Wiem, że można dodać zero na początku pojedynczych liczb to będzie ok, ale nie chce zer na początku, chce mieć listę w ten sposób ale by sortowanie było ok. Dlaczego w ogóle sortuje w taki sposób?

Pozdrawiam.

ps. chodzi mi o sortowanie po tytule w bazie, nie mam możliwości ustawienia int na liczbie bo jest razem z tytułem, każdy tytuł kończy się liczbą.
nospor
To wkońcu sortujesz to na poziomie bazy czy php? Bo raz piszesz o bazie a raz o php. Zdecyduj się: albo to, albo tamto
wree
pobieram z bazy dane, ale jak się nie da tego w mysqlu to mogę jakoś zmodyfikować w php tylko nie wiem jak to zrobić. Wolałbym na poziomie mysql-a to zrobić.
JoShiMa
Chodzi Ci o natsort()
wree
dzięki JoShiMa, za naprowadzenie, dla php jest ok, jednak okazało się że potrzebuję to wyłącznie w zapytaniu z bazy mysql, szukałem w sieci przez kilka godzin ale nic sensownego nie znalazłem, udało się tylko gdy na początku są liczby a nie w środku zdania tak jak ja potrzebuje czyli takie natsort dla mysql dla:

Dział 1 Poddział 1 - Wprowadzenie
Dział 1 Poddział 2 - Start
Dział 1 Poddział 3 - Podtytuł
Dział 1 Poddział 12 - Podtytuł 2
Dział 1 Poddział 13 - Zakończenie
Dział 2 Poddział 1 - Wprowadzenie
Dział 2 Poddział 5 - Podtytuł
Dział 2 Poddział 15 - Podtytuł 2

jak to zrobić tylko w zapytaniem z bazy?
JoShiMa
Cytat(wree @ 6.12.2012, 01:49:57 ) *
dzięki JoShiMa, za naprowadzenie, dla php jest ok, jednak okazało się że potrzebuję to wyłącznie w zapytaniu z bazy mysql, szukałem w sieci przez kilka godzin ale nic sensownego nie znalazłem, udało się tylko gdy na początku są liczby a nie w środku zdania tak jak ja potrzebuje czyli takie natsort dla mysql dla:

Dział 1 Poddział 1 - Wprowadzenie
Dział 1 Poddział 2 - Start
Dział 1 Poddział 3 - Podtytuł
Dział 1 Poddział 12 - Podtytuł 2
Dział 1 Poddział 13 - Zakończenie
Dział 2 Poddział 1 - Wprowadzenie
Dział 2 Poddział 5 - Podtytuł
Dział 2 Poddział 15 - Podtytuł 2

jak to zrobić tylko w zapytaniem z bazy?


Ja po prostu inaczej zorganizowałabym tabelę smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.