我有一个产品表,其中包含描述产品的任何表的所有必填字段。我可以用任何价格和货币在此表中添加产品,例如:
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>
这将搜索所有产品,无论其设置的货币如何。我怎样才能做到这一点?我想在用户保存产品时转换货币,但问题是货币汇率不断变化。并选择所有产品然后计算汇率,然后根据所给出的愤怒过滤不是一个好的解决方案,特别是当你有一个非常大的产品数据库时。
答案 0 :(得分:0)
一个想法可能是在您进行查询时计算货币汇率。例如,您要选择介于1美元和2美元之间的所有项目。使用Web服务计算其他货币的值。这样你会有类似的东西:
范围:
并使用这些值来查询表格。
答案 1 :(得分:0)
我现在才意识到(我也想做同样的事情)在价格表中创建一个新列,并使用货币常量对其进行更新-请记住一种主要货币(在这种情况下为欧元)示例: 让我们估算美元为欧元的1.04
现在我们可以轻松地按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());
}
}
更新了所有价格后,它就像一个魅力:)