在我的mySQL数据库中,在price
下我有x.xxx之类的值作为文本。例如3.000,4.350,18.400等。
在我的HTML表单中,我有一些值,如
<option value="4.000">4000 €</option>
<option value="5.000">5000 €</option>
<option value="6.000">6000 €</option>
当我提交时,我使用cast(price as signed)
进行<=
比较。
有时,结果不正确,因为我试图理解的是,如果没有像5.360那样保存圆形价格而不是5.300
我想通过改变这个我不知道的东西,它将被修复。
您建议我提供什么解决方案?
if (!empty($price)) $conditions[] = "cast(price as signed) <= '".mysql_real_escape_string($price)."'";
答案 0 :(得分:0)
这应该有用吗? 5.360视为5.3
$conditions[] = "FLOOR(cast(price as signed),1) <= '".mysql_real_escape_string($price)."'";
如果您希望5.360为5.4(向上舍入),请使用:
$conditions[] = "ROUND(cast(price as signed),1) <= '".mysql_real_escape_string($price)."'";