如何根据不同货币的价格过滤产品?

时间:2015-01-25 13:54:58

标签: php mysql

我有一个产品表,其中包含描述产品的任何表的所有必填字段。我可以用任何价格和货币在此表中添加产品,例如:

name    , Price, Currency    
football, 10   , US dollar
jacket  , 10   , Euros
shirt   , 20   , Pounds
watch   , 30   , Euros     
pants   , 35   , Pounds

正如您所看到的,每个产品都会添加其价格和设置的货币。我的问题出现在我想要使用PHP或Mysql直接进行过滤(无论什么工作),对于价格范围很广的产品。 5至20美元或20至35磅

类似这样的形式:

From:
<input name="price_from" type="text" />
To:
<input name="price_to" type="text" />
Currency:
<select class="element select medium" id="element_3" name="currency">
  <option selected="selected"></option>
  <option value="1">Dollar</option>
  <option value="2">Pound</option>
  <option value="3">Euro</option>
</select>

这将搜索所有产品,无论其设置的货币如何。我怎样才能做到这一点?我想在用户保存产品时转换货币,但问题是货币汇率不断变化。并选择所有产品然后计算汇率,然后根据所给出的愤怒过滤不是一个好的解决方案,特别是当你有一个非常大的产品数据库时。

2 个答案:

答案 0 :(得分:0)

一个想法可能是在您进行查询时计算货币汇率。例如,您要选择介于1美元和2美元之间的所有项目。使用Web服务计算其他货币的值。这样你会有类似的东西:

范围:

  • 1和2美元
  • 0.4和0.7磅
  • 3和5美元

并使用这些值来查询表格。

答案 1 :(得分:0)

我现在才意识到(我也想做同样的事情)在价格表中创建一个新列,并使用货币常量对其进行更新-请记住一种主要货币(在这种情况下为欧元)示例: 让我们估算美元为欧元的1.04

  1. 价格货币sort_price sort_currency(只是 更加清楚)
  2. 10美元10.4欧元
  3. 12欧元12 EUR

现在我们可以轻松地按eur中的sort_price列进行排序

下一步,对MySQL进行2个更新命令,以更新sort_price列中的USD价格,也对EUR进行更新。

或者可以通过单击按钮在管理页面中创建一个页面以更新sort_price,并需要在其中制作php cod。

代码:

if (isset($_POST['sort_price_act'])) { $price_new_sdf ='';

    $price_ron_select_query ="SELECT price, currency, id FROM table ORDER BY id ASC";   

    $price_ron_select = mysql_query($price_ron_select_query) or die("PPPPPPP".mysql_error());



    while ($price_ssss = mysql_fetch_array($price_ron_select, MYSQL_BOTH)) {

        if($price_ssss['currency'] == 'RON'){   

        $price_new_sdf = round($price_ssss['price'] / 4.81,2);


        mysql_query("UPDATE produse SET sort_price = '".$price_new_sdf."' WHERE id = '".$price_ssss['id']."'") or die(mysql_error());   


        }
        if($price_ssss['currency'] == 'EUR'){   

        $price_new_sdf = $price_ssss['price'];

        //echo $price_new_sdf.' EUR + id = '.$price_ssss['id'].'<br>';

        mysql_query("UPDATE produse SET sort_price= '".$price_new_sdf."' WHERE id = '".$price_ssss['id']."'") or die(mysql_error());        

        //$sort_priceuri = mysql_query($sort_priceuri_query) or die("VVVVVV".mysql_error());
        }
    }

}

    $price_ron_select_query ="SELECT price, currency, id FROM table ORDER BY id ASC";   

    $price_ron_select = mysql_query($price_ron_select_query) or die("PPPPPPP".mysql_error());



    while ($price_ssss = mysql_fetch_array($price_ron_select, MYSQL_BOTH)) {

        if($price_ssss['currency'] == 'RON'){   

        $price_new_sdf = round($price_ssss['price'] / 4.81,2);


        mysql_query("UPDATE produse SET sort_price = '".$price_new_sdf."' WHERE id = '".$price_ssss['id']."'") or die(mysql_error());   


        }
        if($price_ssss['currency'] == 'EUR'){   

        $price_new_sdf = $price_ssss['price'];

        //echo $price_new_sdf.' EUR + id = '.$price_ssss['id'].'<br>';

        mysql_query("UPDATE produse SET sort_price= '".$price_new_sdf."' WHERE id = '".$price_ssss['id']."'") or die(mysql_error());        

        //$sort_priceuri = mysql_query($sort_priceuri_query) or die("VVVVVV".mysql_error());
        }
    }

更新了所有价格后,它就像一个魅力:)