Hallo beste mensen,

Ik zit met het volgende probleem. Ik probeer via een php script een CSV bestand te importeren in een database. Nu is bij allerlei andere CSV's al gelukt maar bij 1 CSV staat er een komma binnen een veld. Deze komma wordt gezien als een scheiding tussen de velden terwijl dit niet het geval is.

Importeren van 25,35 wordt dus 25 en 35 in 2 verschillende velden. Ik wil dit bedrag graag in 1 veld hebben.

Is iemand hier al eerder tegenaan gelopen?

Mijn huidige script is:


<?
include '../typo3conf/localconf.php';

if (!mysql_connect($typo_db_host, $typo_db_username, $typo_db_password)) { die('mysql_connect: error'); }
if (!mysql_select_db($typo_db)) { die('mysql_select_db: error'); }

chmod($_FILES["csvopenstaand"]["tmp_name"], 0777);
mysql_query('TRUNCATE TABLE tx_members_openstaand');

$query = "LOAD DATA LOCAL INFILE '".$_FILES["csvopenstaand"]["tmp_name"]."' INTO TABLE `tx_members_openstaand` FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (`inv_nr`,`trn_date`,`trn_desc`,`item_bal`,`cost_code`,`sub_nr`,`acct_name`,`rpl_grp`,`debnrdisp`,`debnrvert`,`debnrcie2`)";

$result = mysql_query($query)
or die("Ongeldige query: " . mysql_error());

echo('Aantal regels geimporteerd: '. mysql_affected_rows() .'<br />');
echo('Upload van de openstaande posten is succesvol afgerond.<br />');
?>
Is die komma niet ge-escaped dan?
Hoe zou ik dat kunnen doen?

Het is de 4e komma op de line.

[size=xsmall]Toevoeging op 09/09/2010 16:13:13:[/size]

een line in het CSV bestand ziet er overigens zo uit:

200930077,12-08-2009,"BW27.2",10,8000,"BEST","1006D","Tapverlies","","","",""

Het gaat hier dus om de 10,8000. Dit is een bedrag, en staat niet tussen " ".
Misschien zorgen dat je het bedrag ook als bedrag krijgt aangeleverd. Dus 25.35 in plaats van 25,35.
SanThe Nvt op 09/09/2010 16:13:20

Misschien zorgen dat je het bedrag ook als bedrag krijgt aangeleverd. Dus 25.35 in plaats van 25,35.

Dit was ook mijn eerste oplossing maar helaas bleek dit niet mogelijk te zijn.
Ik krijg de CSV bestanden aangeleverd door een andere partij en deze kunnen het niet leveren met een . ipv ,
En tussen quotes? "25,35"
Zou het misschien mogelijk zijn zelf deze quotes toe te voegen in het CSV bestand via php?

Reageren