Alexos
Новичок
Cортировка по цене, если вывод цены подлежит определенной логике
Задача сделать на сайте сортировку по цене.
В таблице есть следующие поля относящиеся к ценообразованию на выходе:
price_in decimal(10,2) - цена закупки товара
percent_out decimal(10,2) - наша наценка на товар
percent_discount decimal(10,2) - скидка на товар
price_fixed decimal(10,2) - фиксированная цена (если значение задано, то первые два поля игнорируются)
Каким образом можно сделать сортировку по цене, если вывод цены подлежит следующей логике:
Можно ли это как то уложить в запрос и избавиться от пхп-кода и сделать сортировку по цене?
Задача сделать на сайте сортировку по цене.
В таблице есть следующие поля относящиеся к ценообразованию на выходе:
price_in decimal(10,2) - цена закупки товара
percent_out decimal(10,2) - наша наценка на товар
percent_discount decimal(10,2) - скидка на товар
price_fixed decimal(10,2) - фиксированная цена (если значение задано, то первые два поля игнорируются)
Каким образом можно сделать сортировку по цене, если вывод цены подлежит следующей логике:
PHP:
<?
// Задана/не задана фиксированная цена
if($price_fixed != '0') $price = $price_fixed;
else $price = (($price_in * $percent_out) / 100) + $price_in;
// Если выводить в долларах:
if (CurrencyRus=='0') {
// Если скидка на товар не задана
if ($percent_discount=='0') $out = number_format($price, "2", ".", " ")."\$";
// Если задана
if ($percent_discount!='0') {
$discountless = $price;
$discount = $discountless - (($discountless * $percent_discount) / 100);
$out = "<del>".number_format($discountless, "2", ".", " ")."\$</del> ".
"<font color=\"FF0000\">".number_format($discount, "2", ".", " ")."\$</font>";
}// if
} // if
// Если выводить в рублях:
if (CurrencyRus=='1') {
// Если скидка на товар не задана
if ($percent_discount=='0') $out = round($price * CurrencyRate)." руб.";
// Если задана
if ($percent_discount!='0') {
$discountless = $price;
$discount = $discountless - (($discountless * $percent_discount) / 100);
$out = "<del>".round($discountless * CurrencyRate)." руб.</del> ".
"<font color=\"FF0000\">".round($discount * CurrencyRate)." руб.</font>";
}// if
} // if
?>
<p><?=$out?></p>
Можно ли это как то уложить в запрос и избавиться от пхп-кода и сделать сортировку по цене?