Autor | Zpráva | ||
---|---|---|---|
koudelacek Profil * |
#1 · Zasláno: 14. 1. 2015, 11:49:03
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 |
#2 · Zasláno: 14. 1. 2015, 12:47:52
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 * |
#3 · Zasláno: 14. 1. 2015, 13:17:32
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 |
#4 · Zasláno: 14. 1. 2015, 13:35:43
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 |
#5 · Zasláno: 14. 1. 2015, 13:36:02
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 * |
#6 · Zasláno: 14. 1. 2015, 15:10:46 · Upravil/a: koudelacek
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 |
#7 · Zasláno: 14. 1. 2015, 16:14:23
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 * |
#8 · Zasláno: 14. 1. 2015, 16:52:13
Rozchodil jsem.
Díky za rady. |
||
Časová prodleva: 10 let
|
0