login  Naam:   Wachtwoord: 
Registreer je!
 Forum

CSV ziet geen rijen

Offline GroundZero - 16/10/2011 00:09
Avatar van GroundZeroLid (Sorry als jullie dit als dubbel post zien maar had mijn andere vraag op "opgelost" staan en deze vraag is toch weer over iets anders op zich ;) )

Beste,

Onderstaand mijn script welke een CSV bestand opent en weergeeft (wil het uiteindelijk in mijn MYSQL database opslaan). Echter heb ik een probleem.

Als ik in Excel een overzicht maar en dit als CSV opsla dan slaat hij het op als volgt:

Citaat:
pietje, puk, 12
jan, pettelaar, 15


Echter ziet mijn programmering dan niet dat het om twee rijen gaat.

Wanneer ik het volgende doe (via notepad)

Citaat:
"pietje, puk, 12"
"jan, pettelaar, 15"


dan ziet hij wel dat het om twee rijen gaat. Ik moet dus PER rij aanhalingstekens gebruiken, echter krijg ik dit op geen mogelijkheid voor elkaar in Excel.

Wat is er nu verkeerd, mijn programmering of gaat het bij Excel fout, en als het mijn programmering is hoe kan ik dit oplossen?


  1. <?php
  2. if(isset($_POST['hidden']) && $_POST['hidden'] == 'importeren-toevoegen')
  3. {
  4. if (($handle = fopen("temp/Map23.csv", "r")) !== FALSE)
  5. {
  6. // rijen teller
  7. $i = 0;
  8.  
  9. // loop voor de inhoud
  10. while (($data = fgetcsv($handle)) !== FALSE)
  11. {
  12. $num = count($data);
  13.  
  14. for ($c = 0; $c < $num; $c++)
  15. {
  16. //echo $data[$c].'<br /><br />';
  17. $a[$i] = explode(",", $data[$c]);
  18. }
  19.  
  20. // rijen teller uppen
  21. $i++;
  22. }
  23. fclose($handle);
  24. }
  25.  
  26. echo '<hr>';
  27.  
  28. foreach($a as $value)
  29. {
  30. echo $value[0].' | '.$value[1].' | '.$value[2].' | '.$value[3].' | '.$value[4].' | '.$value[5].' | '.$value[6].' | '.$value[7].' | '.$value[8].' | '.$value[9].' | '.$value[10].' | '.$value[11].' |
  31. '.$value[12].' | '.$value[13].' | '.$value[14].' | '.$value[15].' | '.$value[16].' | '.$value[17].' | '.$value[18].' | '.$value[19].' | '.$value[20].' | '.$value[21].' | '.$value[22].' | <br />';
  32. }
  33. }
  34. ?>

4 antwoorden

Gesponsorde links
Offline vinTage - 16/10/2011 09:09
Avatar van vinTage Nieuw lid Je kunt die cvs ook exploden op \r\n of \n of \r, gewoon even kijken welke er werkt, daarna de rest weer exploden op de komma.
Offline GroundZero - 16/10/2011 10:11
Avatar van GroundZero Lid ugh logisch... gaan we dat eens proberen vinTage dankjewel voor je reactie!
Offline Sam - 16/10/2011 12:27
Avatar van Sam PHP expert Je gebruikt een functie om de inhoud van je .csv te lezen. Ik vind het zeer interessant dat je dan zelf nog moet exploden op new lines en komma's

Als ik deze code gebruik:
  1. <?php
  2. if($handle = fopen('csv.csv', 'r'))
  3. {
  4. while($data = fgetcsv($handle))
  5. {
  6. echo '<pre>';
  7. var_dump($data);
  8. echo '</pre>';
  9. }
  10. }
  11. ?>


Krijg ik deze arrays:
Citaat:
array(3) {
[0]=>
string(6) "pietje"
[1]=>
string(4) " puk"
[2]=>
string(3) " 12"
}

array(3) {
[0]=>
string(3) "jan"
[1]=>
string(10) " pettelaar"
[2]=>
string(3) " 15"
}


Met deze csv:
Citaat:
pietje, puk, 12
jan, pettelaar, 15


Ik zie het probleem niet?
Offline GroundZero - 16/10/2011 20:03
Avatar van GroundZero Lid raar... bij mij werkt dat dus absoluut niet... ik moet in mijn CSV dit doen:

"pietje, puk, 12"
"jan, pettelaar, 15"

Dan heb ik twee rijen. Gebruik ik de "" tekens niet dat werkt het script niet. Erg raar, ga het even allemaal aanpassen, dan laat ik de uitkomst weten!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.192s