Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mySQL] sortowanie
Forum PHP.pl > Forum > Bazy danych > MySQL
micbuc
Witam serdecznie,

Zawiesiłem się strasznie nad pytaniem, które miałoby posortować mi dane z tabeli...
O co chodzi:
- mam tabelę m.in. z polami [nazwa] i [cena]
- w tabeli przechowuję rekordy z produktami, które tak na prawdę mogą powtórzyć się parokrotnie (różnią się tylko sufiksem z pola nazwa i ceną oczywiście)
w praktyce wygląda to mniej więcej tak:
[nazwa 1] [cena 10]
[nazwa 2] [cena 5]
[nazwa 2 szt 10] [cena 70]
[nazwa 3] [cena 20]
[nazwa 3 szt 10] [cena 150]
[nazwa 4] [cena 15]
[nazwa 4 szt 10] [cena 100]

- moim celem jest posortowanie produktów po cenie, jednak w chwili, gdy jest on dostępny również w większej ilości sztuk, żeby został wyświetlony po tym pierwszym
w praktyce miałoby to wyglądać tak:
[nazwa 2] [cena 5]
[nazwa 2 szt 10] [cena 70]
[nazwa 1] [cena 10]
[nazwa 4] [cena 15]
[nazwa 4 szt 10] [cena 100]
[nazwa 3] [cena 20]
[nazwa 3 szt 10] [cena 150]

Nie mam pojęcia jak się za to zabrać.
Bardzo proszę o radę lub treść samego zapytania.
snipe
SELECT nazwa, cena FROM tabela ORDER BY nazwa, cena

O to Ci chodziło??
barat
Moim zdaniem skopałeś bazę ...
Powinny być tylko nazwa 1,2,3,4 itp
A liczby sztuk już obsługiwać przez PHP i według tego wzorem matematycznym obliczac rabat (chyba 30%) a tabele zamówienia zrobić na zasadzie
nazwa | liczba sztuk | konćowa cena | imie | nazwisko | i tak dalej ...

Dzięki temu możesz w opisie przedmiotu napisać, że przy zakupie powyżej 10 sztuk rabacik (który skrypt sam uwzględni jeśli klient wpisze w pole ilości sztuk 10) smile.gif - tak może zamówić 1 - 4 a nawet 999 tongue.gif
micbuc
Snipe:
Twoje zapytanie da dokładnie taki wynik, jak podałem w danych wejściowych (a o to mi nie chodzi). Mimo to dziękuję za zainteresowanie.

Barat:
Bazy niestety sam nie projektowałem, dostałem ją tylko do ogarnięcia.
Przeróbki raczej też nie wchodzą w grę, bo musiałbym praktycznie napisać od nowa cały sklep.

Wartość rabatu natomiast, dla każdego produktu w ilości 10 sztuk, może być inna. Dla jednego powiedzmy 10%, dla innego 20%. Podobnie rzecz ma się dla różnej ilości danego, wybranego produktu. Przy zakupie 5 sztuk może on wynieść 5%, przy 10 natomiast - 15%.
Mógłbym to rozwiązać tworząc nową tabelę z polami [idNazwy] [liczbaSztuk][rabat], ale jak już wspomniałem - wiązałoby się to przebudową całego sklepu czego tak na prawdę chciałbym uniknąć ;/
snipe
Myślę, że zainteresuje Cię konstrukcja if w mysql'u 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.