Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: potrojne sortowanie wynikow
Forum PHP.pl > Forum > PHP
wujeksz
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
Najlepiej zastosowac sie do czesci zasad i przechowywac nazwe, jednostke miary, cene itd w osobnych kolumnach, w ten czas sortowanie to bajka.
wujeksz
nie no bo tak jest. jest w oddzielnych kolumnach. tylko nie rozumiem czemu przy sortowaniu

produkt 10kg
jest przed produktem
produkt 1kg.
?
maly_swd
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
no wiec, jakies sugestie macie? ale cena jest zwyzkowa. czyli 1kg jest tansze niz 5kg. moze cena dalo by rade to posortowac pozniej?
Marcineczeczek
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.