【问题标题】:MySQL storing data in the databaseMySQL在数据库中存储数据
【发布时间】:2019-11-18 09:18:42
【问题描述】:

当我将数据存储到 MySQL 表中时,我看到一个货币符号 Â,我尝试了 trim(),但仍然没有删除 Â

JavaScript:

var numZAR=new Intl.NumberFormat("en-ZAR",{    
    style:"currency",
    currency:"ZAR",
});

var total_raw = numZAR.format(Number(final_item_total).toFixed(2));

var total_string=total_raw.toString();

var total_show = total_string;
$('#final_total_amt').text(total_show);

$('#me').val(total_show); //displaying on front end textbox

MySQL语句前的PHP代码:

$final = $_POST["me"];

$final = trim($final,"ZAR ");

这是表格中显示的内容:Â 2,212.00

请帮忙!

【问题讨论】:

  • 首先看看为什么Â 保存到 db 列。更改列 collation to float 以防止它。在你的 jQuery 代码中也使用parseFloat()
  • 嗨,我认为第一行代码中缺少括号,我试图修复它。请仔细检查您的所有代码,确保没有其他错误。对于一个解决方案,我倾向于存储一个hidden field,它只有一个没有货币符号的数字。然后在 PHP 中将其存储在 MySQL 表中,无需修剪。
  • 嘿,'final_item_total' 是一个浮点变量,将 column collat​​ion 更改为 float 在我的 colum 中给了我 0 值

标签: javascript php mysql number-formatting


【解决方案1】:

trim() 用于删除字符串开头和结尾的特定字符。而ltrim() 仅用于删除开头,最后rtrim() 用于仅删除末尾。

你可以查找它的原型here

因为你好像用错了。

$chars 成为包含要从字符串开头和结尾删除的单个字符的字符串。那么你会:

$chars = 'Â';
$final = $_POST["me"];
$final = trim($final, $chars);

$final 的值为

2,212.00

因为'Â' 会从一开始就被删除。

现在'Â' 来自哪里,它很可能是由Intl.NumberFormat 转换器引起的。如果您的所有后端需要存储值(没有任何货币符号) - 那么我不明白为什么仅从 JavaScript 将值作为纯数字发送是行不通的。

所以让你的 JavaScript 成为:

var total_raw = Number(final_item_total).toFixed(2);

var total_string=total_raw.toString();

var total_show = total_string;
$('#final_total_amt').text(total_show);

$('#me').val(total_show); //displaying on front end textbox 

这只会以以下格式向服务器发送一个浮动值:2342.43 - 然后您就不需要修剪任何“不需要的值”。

【讨论】:

  • 此代码有效,但我添加 Intl.NumberFormat 转换器的原因是因为结果应该是货币格式,例如:$2,442.00 或 $24,420.00 或 $244,200.00 或 $2,442,000.00
  • @benny 然后你可以在后端使用 PHP number_format() 做到这一点。我认为最好在后端进行格式化,因为看起来前端无论如何都会给你带来问题(因此你的问题)。
【解决方案2】:

您应该看到Â 的来源,但如果您真的找不到并修复它,作为备份,您可以使用正则表达式来获得您想要的。一个简单的例子:

$str = "Â 2,212.00";
preg_match('/[0-9,.]+/', $str, $final); 
echo $final[0];

【讨论】:

    【解决方案3】:

    如果那个字符串有固定的特殊字符位置,那么你可以使用这个

    $data = explode('Â', 'Â 2,212.00'); 回声 $data[1];

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 2014-01-12
      • 2019-09-15
      相关资源
      最近更新 更多