wujeksz
5.09.2012, 08:00:31
hej, mam tabele, ktora wyglada tak
id | nazwa produktu | producent | cena | pozycja
pozycja oznacza gdzie chcialbym na stronie to wyswietlac. czyli jak 1 to na gorze tabeli itd.
Chce posortowac aby bylo to wyswietlane tak: wpierw pozycja czyli, 1, 2, 3. Nastepnie do kazdej pozycji posortowanie nazwy a nastepnie ceny. I tutaj mam problem
bo jak mam zapisany jakis produkt jako nazwa:
majonez 2kg
majonez 5kg
majonez 20kg
To mi to sortuje jako:
majonez 20kg
majonez 2kg
majonez 5kg.
Dane z produktu sa zapisane jako VARCHAR
Jak to poprawnie posortowac?
no_face
5.09.2012, 08:08:48
Najlepiej zastosowac sie do czesci zasad i przechowywac nazwe, jednostke miary, cene itd w osobnych kolumnach, w ten czas sortowanie to bajka.
wujeksz
5.09.2012, 08:33:55
nie no bo tak jest. jest w oddzielnych kolumnach. tylko nie rozumiem czemu przy sortowaniu
produkt 10kg
jest przed produktem
produkt 1kg.
?
maly_swd
5.09.2012, 08:47:43
produkt 10kg
jest przed produktem
produkt 1kg.
Poniewaz jest to tekst, a ZNAK '0' jest pierwszy niz 'k', w skrocie najpierw sa znaki 0-9 a pozniej a-z
wujeksz
5.09.2012, 09:13:42
no wiec, jakies sugestie macie? ale cena jest zwyzkowa. czyli 1kg jest tansze niz 5kg. moze cena dalo by rade to posortowac pozniej?
Marcineczeczek
5.09.2012, 09:21:46
Jedyne wyjscie to osbna kolumna z zapisana wagą w formie inta czy numerica i po niej sortowanie. Sortowanie tekstowe przy takim układzie zawsze da błedne wyniki.
no_face
5.09.2012, 09:23:15
W samym php moglbys skorzystac z funkcji sortujacych, ktore sa odporne na takie sortowanie.
No, ale skoro w bazie jednak trzymasz takie rzeczy osobno, posortuj owe rzeczy po kolumnie ktore Cie interesuja, waga, cena itd. a nie po nazwie.
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.