Поменять доллары на рубли.

moradin

Постоялец
Регистрация
11 Фев 2016
Сообщения
76
Реакции
14
Добрый день. Подскажите, баланс пользователя берется в долларах и заливается в базу данных сайта. Как сделать, чтобы баланс в рублях заливался в базу? Ниже представлена часть скрипта, интересует сумма "amount".
Код:
$sql_ret['program_id']=$a->advcampaign_id;
    $x=db_read('cashbackengine_retailers',$sql_ret);
    $b=str_replace('%','',$x[0]['cashback']);
    $sql['transaction_commision']=round($b*strval($sql['transaction_amount'])/100,2);
    $sql['amount']=$sql['transaction_commision'];
    $x=db_read($tbl,$sqlw);
 
Сделай функцию конвертирования и оберни её переменную в баксах.
 
А поподробнее, если можно.
Поподробнее: хранить 100500 цен в пересчёте в базе обычно не принято.
Проще сделать функцию пересчёта в 100500 валют, валюту выбирает пользователь и запоминает в куках, а курсы валют хранятся в настройках либо импортируются из какого-нибудь банка.
Пример такого импорта: Для просмотра ссылки Войди или Зарегистрируйся
PS/ Если Вы ничего не поняли из написанного (куки, импорт из банка и т.п.), то Вам в движок лезть и что-то править рано.
 
Пусть в поле
amount хранятся рубли, на этом поле написано, что это доллары. Поэтому можно просто исправить в шаблоне доллары на рубли, а в базе уже существующие записи, если нужно, конвертировать в рубли.

А поподробнее, если можно.

Курс можно получать актуальный так:

PHP:
function getValuteRate()
    {
        $url = 'http://www.cbr.ru/scripts/XML_daily.asp';
        $answer = file_get_contents($url);
        $index = new SimpleXMLElement($answer);
        foreach($index as $val)
        {
            if($val->NumCode == 840){
                return str_replace(',','.',$val->Value);
            }
        }
    }
 
Последнее редактирование модератором:
Вот вам рабочий кусок получения актуального курса

Код:
        function get_content()
{
    // Формируем сегодняшнюю дату
    $date = date("d/m/Y");
    // Формируем ссылку
    $link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$date;
    // Загружаем HTML-страницу
    $fd = @fopen($link, "r");
    $text="";
    if (!$fd) echo "Сервер ЦБ не отвечает";
    else
    {
      // Чтение содержимого файла в переменную $text
      while (!feof ($fd)) $text .= fgets($fd, 4096);
      // Закрыть открытый файловый дескриптор
      fclose ($fd);
    }
    return $text;
}
           $content = get_content();
  // Разбираем содержимое, при помощи регулярных выражений
  $pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";
  preg_match_all($pattern, $content, $out, PREG_SET_ORDER);
  $dollar = 62;
  foreach($out as $cur)
  {
    if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]);
  }
 
Код:
<?php               
                $amount_input = filter_input(INPUT_POST, 'amount_input');
                $currency1 = filter_input(INPUT_POST, 'currency1');
                $currency2 = filter_input(INPUT_POST, 'currency2');

                $currencies = array();
                $currencies['CAD'] = array(
                    'CAD' => 1,
                    'EUR' => 0.624514066,
                    'GBP' => 0.588714763,
                    'USD' => 0.810307,
                    'RUB' => 41.29

                );

                $amount_output = $amount_input*$currencies[$currency1][$currency2];

?>
 
Добрый день. Подскажите, баланс пользователя берется в долларах и заливается в базу данных сайта. Как сделать, чтобы баланс в рублях заливался в базу? Ниже представлена часть скрипта, интересует сумма "amount".
Код:
$sql_ret['program_id']=$a->advcampaign_id;
    $x=db_read('cashbackengine_retailers',$sql_ret);
    $b=str_replace('%','',$x[0]['cashback']);
    $sql['transaction_commision']=round($b*strval($sql['transaction_amount'])/100,2);
    $sql['amount']=$sql['transaction_commision'];
    $x=db_read($tbl,$sqlw);

Задай множитель. $kurs_rubl=60; $sql['amount']=$sql['transaction_commision'] * $kurs_rubl;
 
Назад
Сверху