私は検索して検索しましたが、事実上何も見つかりませんでした。私は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>";
}
PHPExcel_1.8.0_docというPHPクラスを使用できます。このクラスのリンクは次のとおりです:https://phpexcel.codeplex.com/ – Tarek