2016-09-01 6 views
1

私は検索して検索しましたが、事実上何も見つかりませんでした。私はPHPスクリプトを介してmysqlデータベースに挿入しているCSVファイルを持っています。多くの異なったものを試しましたが、正しく動作させることはできません。 CSVフィールドは、currancyとしてフォーマットされたカラムで私たちに送られ、VARCHAR、INT、Decimal(10,2)、Floatを使ってmysqlテーブルに追加しようとしました。 '$'を取り除いてnumber_format($ sum、2、 '。'、 '、')で計算すると、PHPのsubstr($ val、1)を使ってテーブルにロードされ、VARCHARに正しく表示されます。 ;それが$ 3,456,789.00でなければならない$ 1,200.00のように完全に間違っています。
インポートする前に手動でCSV列の形式をTEXTに変更しても正常に動作しますが、これは自動化する必要があります。currancy形式のフィールドでCSVをMYSQLにインポート

CSVをインポートするための提案は、currancyとして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>"; 
    } 
+0

PHPExcel_1.8.0_docというPHPクラスを使用できます。このクラスのリンクは次のとおりです:https://phpexcel.codeplex.com/ – Tarek

答えて

0

私はそれを理解したので、他のプログラムを使う必要はありませんでした。 代わりの:

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

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

Iはこれにそれを変更:

 $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であることに最初の2つの数字を追加し、カンマは、それを停止し、次の行に移動しました。 。コンマを削除し、floatvarを追加しました。

関連する問題