Hoi, ik ben nu al een tijdje bezig met het proberen importeren van een .csv bestand in de database..

Nu het lukt netjes voor de eerste twee rijen uit het csv bestand.

Maar het derde wilt hij niet invoeren..

Ik zie namelijk niet waar het eventueel fout zou kunnen gaan.

Hieronder (test.csv) zijn de gegevens die ik upload via het script.
test.csv
Test1;99999;1
Test2;88888;2
Test3;77777;3
Test4;66666;4
Test5;11111;5



Hier het script zelf
csv.php
<?php

$dbhost = "**";
$dbuser = "**";
$dbpw = "**";
$dbname = "**";

$db = mysql_connect($dbhost, $dbuser, $dbpw) or die("kan geen connectie maken met de database.");

if(!$db)

die("Geen Database");

if(!mysql_select_db($dbname, $db))

die("Er is geen database geselecteerd.");


if(isset($_POST['submit']))

{

$filename = $_POST['filename'];
$handle = fopen($filename, 'r');

while(($data = fgetcsv($handle, 2000, ";")) !== FALSE)

{
print_r ($data);
$import = "INSERT into interventions(clientid,serialnr,defaults) values ('$data[0]','$data[1]','$data[2]')";
mysql_query($import) or die (mysql_error());
}

fclose($handle);
print "Importeren Gelukt!";


}

else

{

print "<form action='csv.php' method='post' ectype='multipart/form-data'>";
print "Bestand Uploaden<br />";
print "<input type='file' name='filename'><br />";
print "<input type='submit' name='submit' value='submit'></form>";

}

?>



En dan het resultaat dat ik krijg via print_r ($data);
Array ( [0] => Test1 [1] => 99999 )
Array ( [0] => Test2 [1] => 88888 )
Array ( [0] => Test3 [1] => 77777 )
Array ( [0] => Test4 [1] => 66666 )
Array ( [0] => Test5 [1] => 11111 )


Kzie niet waarom hij niet alle data neemt :(

Als iemand zou kunnen helpen zou leuk zijn!

Hartelijk dank alvast!
while(($data = fgetcsv($handle, 2000, ",")) !== FALSE)

moet zijn

while(($data = fgetcsv($handle, 2000, ";")) !== FALSE)
Jah sorry.. haha da weet ik maar die , stond er nog van een andere test..

Dat is het zeker niet :)

[size=xsmall]Toevoeging op 26/08/2010 13:13:11:[/size]

Elio vp op 26/08/2010 13:12:43

Jah sorry.. haha da weet ik maar die , stond er nog van een andere test..

Dat is het zeker niet :)


Edit: had net men post gewijzigd want ik zag het ook net ;)

Elio vp op 26/08/2010 13:12:43

Dat is het zeker niet :)


Hier werkt het.


Array
(
    [0] => Test1
    [1] => 99999
    [2] => 1
)


Array
(
    [0] => Test2
    [1] => 88888
    [2] => 2
)


Array
(
    [0] => Test3
    [1] => 77777
    [2] => 3
)


Array
(
    [0] => Test4
    [1] => 66666
    [2] => 4
)


Array
(
    [0] => Test5
    [1] => 11111
    [2] => 5
)
Jah dan snap ik er niks meer van.. ik krijg hier als uitvoer helemaal iets anders :s

[size=xsmall]Toevoeging op 26/08/2010 15:09:47:[/size]

Line endings probleem dus..

Ik sla het bestand op in Excel voor Mac..

Daar zit het probleem volgens mij..

Jij hebt dat opgeslaan in windows zeker?

Alvast bedankt voor de hulp! :D

[size=xsmall]Toevoeging op 26/08/2010 16:17:16:[/size]

Voor diegene die nog ooit zo'n probleem zouden hebben..

Mac & Line endings = Kak!

oplossing: ini_set('auto_detect_line_endings', true);

Indien shared host: $string = str_replace("\r","\n",str_replace("\r\n","\n",$string));

Is opgelost nu!

Vriendelijke Groeten!

Reageren