Autor Zpráva
koudelacek
Profil *
Zdravím Vás,

potřeboval bych poradit s nádledujícím.
Do DB (varchar) se mi ukládají ceny ve formátu 1000000.00.

Nyní je potřebuji vypisovat s možností seřadit dle ceny a nevím jak na to.

Vypisují se takto
1 Kč
100 Kč
256 000 Kč
31 Kč .....

Děkuji za případné rady co s tím.
Corwin
Profil
ceny se neukládají jako varchar ale jako float. varchar se řadí abecedně, kdežto čísla řadí podle hodnoty.

pak dáš jen SELECT * FROM product ORDER BY price ASC

(nebo DESC od nejdražšího).
koudelacek
Profil *
Díky moc.

Ještě jeden složitejší dotaz.

Řekněme že v tabulce jsou sumy v CZK a EUR. Měna má svůj sloupec "mena".

Je možné při výpisu zohlednit měnu a vynásobit při výpisu řádky s EUR * 25? Samozřejmě správně seřazené..
Kajman
Profil
Nepoužil bych float, ale decimal.

Aktuální kurz bych si dával do nové tabulku (co řádek, to cizí měna) tu bych podle měny připojil k tabulce s cenami a případně vynásobil kurzem. Něco jako

select c.*
from ceny c
left join kurzy k on c.mena=k.mena
order by coalesce(k.kurz,1)*c.castka
Corwin
Profil
pokud cena v EUR má být pouhý přepočet, nemá smysl ji mít v DB. v šabloně pak stačí vypsat $produkt['cena']*$kurz.

pokud je ale cizojazyčný katalog nezávislý na českém a je potřeba v DB zadávat ceny i v EUR, pak je sloupec měna na místě. v takovémto případě ale rozhodně nechceš na výpise míchat CZ produkty a EUR produkty.
koudelacek
Profil *
Nejedná se o produkty, ale nemovitosti. Takže míchání cen není problém.
A jde pouze o EUR, takže další tabulka by pro mne byla asi zbytečná.


Šlo mi o to, že pokud mám

nemovitost 1 - 250 000 Kč
nemovitost 2 - 1 500 000 Kč
nemovitost 3 - 20 000 EUR

tak chci vypsat

nemovitost 1
nemovitost 3 - po přepočtu 500 000 Kč ( ve výpise ale bude stále napsáno 20 000 EUR )
nemovitost 2

Snad to půjde udělat přímo nějakým dotazem na DB
Corwin
Profil
takže ceny jsou vždy jen v jednom sloupci a v dalším je měna? potom

"SELECT *, IF(mena = 'EUR', price, price * {$kurz}) AS final_price FROM nemovitosti ORDER BY final_price ASC"

nějak takto, syntaxí si ale nejsem na 100% jistý, pohledej jak se v MySQL píše konstrukce IF.
koudelacek
Profil *
Rozchodil jsem.

Díky za rady.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: