PHP获取十进制值echo仅的第一个数字

时间:2017-03-01 09:39:36

标签: php jquery mysql ajax decimal

我是通过article_no从我的数据库中获取价格。我通过ajax将文章发送到php:

var comps_gehaz = {};
comps_gehaz['articleNumbers'] = 38292783;

$.ajax({
    type: "POST",

    url: "php/gehaz.php",
    data: {gehaz_json_data: JSON.stringify(comps_gehaz)},
    dataType: "text",

    success: function (msg, string, jpXHR) {

        if(msg) {
            $('#gehaz_priceTag').html(msg);
        } else {
            console.log('Something else went wrong.');
        }
    },
    error: function(xhr, desc, err) {
        console.log(xhr);
        console.log("Details: " + desc + "\nError:" + err);
    }
});

MySQL中的表结构是:

... “价格” - >十进制(10,2) “articleNo” - > BIGINT ...

PHP:

$gehaz_json_data = $_POST['gehaz_json_data'];
$obj = json_decode($gehaz_json_data, true);

$articleNumber = $obj['articleNumber'];

$getMoney = "SELECT price FROM Articles WHERE articleNo = '$articleNumber'";

if (mysqli_query($db_link, $getMoney)) {
    $result_price = mysqli_query($db_link, $getMoney);

    while ($row = mysqli_fetch_array($result_price)) {
        $list_price_notFormat = $row['price'];
    }
    echo $list_price_notFormat;
}

如果价格值为345.56,则显示正确。但如果它比3036.47更大,它只会回显第一个数字'3'。

2 个答案:

答案 0 :(得分:0)

我想我知道问题是什么。

我的数据库中的值是使用javascript / node.js自动设置的。我正在从Excel文件中读取值并将它们保存在我的MySQL表中。在将它们放入数据类型为' Decimal 10,2'的列中之前,我必须解析Excel工作表中的值,例如' 1.253,64'字符串所以我可以替换'。'通过''结束','通过'。',所以它看起来像1253.64

我认为这就是它只读取第一个数字的原因。

我应该将数据类型从十进制更改为float还是有更好的方法来保存mysql中的价格?

答案 1 :(得分:0)

了解如何从Excel导出数字,而不是字符串。你绊倒" locale"问题"千位分隔符"。