Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Сортироввать по цене с учётом валюты (Динис) 13/07/2009 - 14:02:09
      Re: Сортироввать по цене с учётом валюты (PeaceCoder) 13/07/2009 - 18:00:28
      Re: Сортироввать по цене с учётом валюты (Динис) 14/07/2009 - 19:01:02
      Re: Сортироввать по цене с учётом валюты (Динис) 16/07/2009 - 22:40:26

> Original message text:
> From: Динис - 13/07/2009 - 14:02:09
> Subject:Сортироввать по цене с учётом валюты
> -----------------
> как можно сделать выборку объявлений по автомобилям сортировкой по цене с определёным выбором валюты также как на сайте auto.ru ?
>
> я сделал, но это если объявление добавлять и привязывать жестко к одной валюте(тоесть валюта не указывается вовсе, в системе заложено изначально цена ввиде USD, и рядом при указании цены есть пометка - указывать только валюте USD).
>
> А теперь заказчик попросил сделать чтобы при добавлении объявления можно было выбирать валюту одну из трёх ( РУБ | USD | EURO) выпадающем списке. Но теперь возникла проблема с выводом. Ранее я заранее знал что объявления были привязаны жёстко к одной валюте, то я легко мог выводить объявления сортировкой ORDER BY price desc и при отображении цены пересчитывал на выбранную валюту. Теперь же всё усложнилось надо не только пересчитать, это не проблема, проблема в другом, допустим если кто-то добавил объявление №1 с ценой 1000 РУБ а другой добавил объявление №2 с ценой 1000 USD и когда будем выводить при валюте "USD", то по логике объявление под №2 должно быть выше чем №1 но поскольку для mysql цифра 1000 у обоих объявлений одна и таже а о валюте ей ничего не известно, а как сделать чтобы можно было учитывать и валюту тоже?
>
> Да, в БД оба поля цена и валюта значатся так
>
> `currency` int(11) NOT NULL DEFAULT '0',
> `price` double(15,0) NOT NULL DEFAULT '0',
>
> массив валют
>
> $arCurrency = array (
> array('id' => '1','name' => 'РУБ'),
> array('id' => '2','name' => 'USD'),
> array('id' => '3','name' => 'EURO'),
> );
>
> соответственно в поле "currency" хранится ID валюты
>
>
>


From: PeaceCoder - 13/07/2009 - 18:00:28
Subject:Сортироввать по цене с учётом валюты
-----------------
$arCur = array (
array('id' => '1','name' => 'РУБ','k'=>0.3),
array('id' => '2','name' => 'USD','k'=>1),
array('id' => '3','name' => 'EURO','k'=>1.2),
);

SELECT *,ELT(currency,'{$arCur[0]['k']}','{$arCur[1]['k']}','{$arCur[2]['k']}')*price AS glPrice FROM auto ORDER BY glPrice

Выберет строки преобразовав все цены к У.е. При выводе ты можешь уже У.Е. переводить в нужный формат пользователя.



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35901



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |