使用货币格式字段将CSV导入MYSQL

格伦

我已经搜寻了,但是什么也没找到。我有一个CSV文件,正在通过php脚本插入mysql数据库。尝试了许多不同的东西,但无法使其正常工作。CSV字段以格式为currency的列发送给我们,尝试将其附加到带有VARCHAR,INT,Decimal(10,2),Float的mysql表中,几乎就从列表中删除了。使用php substr($ val,1)摆脱'$'后,它会加载到表中并正确显示在VARCHAR中,但可以使用number_format($ sum,2,'。',',')来进行计算。 ; 结果完全错误,例如$ 1,200.00,应为$ 3,456,789.00。
如果我在导入之前将CSV列的格式手动更改为TEXT,则可以正常工作,但这必须是自动化的。

关于将CSV格式的货币导入到mysql中进行计算有什么建议吗?使用php导入时,是否可以更改CSV格式?

 $file = "ftp:1.1.1.1/myfile.csv"; 
if(($handle = fopen($file, "r")) !== FALSE)
{ fgetcsv($handle);
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
    {
        $num = count($data);
    for ($c=0; $c < $num; $c++) {
      $col[$c] = $data[$c];
    }
 $col13a = $col[27];
        $col13 = substr($col13a, 1);
     $col13 = substr($col13a, 1);
    $query = "INSERT IGNORE INTO allinv (cost) VALUES ('".$col13."')";


    $s= mysqli_query($dbConnected, $query); 
}

    fclose($handle);
}////upload script

 ////calculation & display script:
 $sum=0;

    while($row = fetch_array($result)){
        $date2= strtotime($row['DateIn']);
        $day = ($date-$date2)/86400;
        $value = $row['Cost'];
        $sum += $value;

    echo "<tr>";
    echo "<td>".$row['VIN']."</td>";
    echo "<td>".$row['Make']."</td>" ;
    echo "<td>".$row['Model']."</td>";
    echo "<td>".$row['Year']."</td>";
    echo "<td>".$row['Color']."</td>";
    echo "<td>".number_format($day)."</td>";
    echo "<td>".$row['Location']."</select></td>";
    echo "<td>".$row['Locationoutside']."</td>";
    echo "<td>".'$'.$row['Cost']."</td>";


    }"</table>";


    echo "<table><tr>
    <th>Total Vehicles</th>
    <th>Sum of Cost</th></tr>";
    $english_format_number = number_format($sum, 2, '.', ',');
    $count= mysqli_num_rows($result);
    echo "<td>".$count."</td>";
    echo "<td> $ ".$english_format_number."</td>";
    "</table>";
     }
格伦

所以我想通了,不必使用任何其他程序。代替:

 ////calculation & display script:
  $sum=0;

while($row = fetch_array($result)){
    $date2= strtotime($row['DateIn']);
    $day = ($date-$date2)/86400;
    $value = $row['Cost'];
    $sum += $value;

我将其更改为:

     $sum = 0;

    while($row = fetch_array($result)){
        $date2= strtotime($row['DateIn']);
        $day = ($date-$date2)/86400;
        $value = $row['Cost'];
        $calc = floatval(str_replace('', '', str_replace(',', '', $value)));
        $sum += $calc;

由于它是VARCHAR,因此只添加了前两个数字,逗号将其停止并将其移动到下一行。删除了逗号,添加了floatvar,现在效果很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在使用LOAD DATA INFILE的同时将CSV时间戳导入MySQL可接受的格式

来自分类Dev

使用 Python 将 CSV 导入 MySQL 表

来自分类Dev

将CSV数据导入MySQL数据库中的字段

来自分类Dev

将csv导入MySQL

来自分类Dev

MySQL查询货币格式

来自分类Dev

MySQL查询货币格式

来自分类Dev

将CSV导入MySQL和

来自分类Dev

使用cakephp将数据从csv导入到mysql

来自分类Dev

使用Yii Framework将数据从csv导入到Mysql

来自分类Dev

使用Yii 2.0 Framework将数据从xls,csv导入Mysql

来自分类Dev

使用cakephp 2.7.5将数据从csv导入mysql

来自分类Dev

使用 Python 将大型 CSV 文件导入 MySQL

来自分类Dev

使用 bash 将多个 .csv 文件导入 mysql

来自分类Dev

将csv导入MySQL数据库时,格式字符串的参数不足

来自分类Dev

使用MySQL中印数字分离格式的货币量

来自分类Dev

使用不带货币代码的货币格式

来自分类Dev

使用导入的csv填写缺少的字段

来自分类Dev

使用php将特定的行和列格式的csv文件导入表

来自分类Dev

使用mongoose模式将文本文件(CSV格式)导入mongodb

来自分类Dev

使用 google 脚本将 .csv 文件导入现有的 google sheet。格式问题。

来自分类Dev

将 CSV 文件导入 SAS 时在 INPUT 部分中使用的格式

来自分类Dev

用户键入时将输入字段值格式化为货币

来自分类Dev

如果使用Sqoop将数据从MySql导入HDFS,HDFS中存储的文件格式是什么?

来自分类Dev

将大csv文件导入mySql

来自分类Dev

通过PHP将CSV文件导入MySQL

来自分类Dev

将 csv 导入 MySQL:从 0 开始

来自分类Dev

通过python将csv数据导入mysql

来自分类Dev

使用 Pandas 将数据从 CSV 格式传输到具有大量字段名的 JSON

来自分类Dev

使用正则表达式将输入格式设置为货币格式

Related 相关文章

热门标签

归档