csv save in map

Status
Niet open voor verdere reacties.

chandlurmark

Gebruiker
Lid geworden
12 mrt 2008
Berichten
58
Weet iemand hoe ik dit goed kan configureren?

PHP:
  <?php
  //
  // establish database connection
  //
  include '../connection/beaufortpersoneel.php';
  //
  // execute sql query
  //
  $query = sprintf("select personeelsnummer, kostenplaats + ' ('+afdeling+')' as kostenplaats, voorletters, voornaam, tussenvoegsels, achternaam, geslacht, geboortedatum, email, telefoon, kamer from topdesk_beaufort where personeelsnummer not like '23' and personeelsnummer not like '54' and personeelsnummer not like '599' and personeelsnummer not like '1505'");
  $result = odbc_exec($connect, $query);
  //
  // send response headers to the browser
  // following headers instruct the browser to treat the data as a csv file called export.csv
  //
  header('Content-type: application/csv');
  header('Content-Disposition: attachment; filename="csv/export-addressbook'.date("Y-m-d-H").'.csv"');
  #readfile('csv/export-addressbook'.date("Y-m-d-H").'.csv');
  //
  // output header row (if atleast one row exists)
  //  
  $row = odbc_fetch_array( $result );
  if ( $row )
  {
    echocsv( array_keys( $row ) );
  }
  //
  // output data rows (if atleast one row exists)
  //
  while ( $row )
  {
    echocsv( $row );
    $row = odbc_fetch_array( $result );
  }
  //
  // echocsv function
  //
  // echo the input array as csv data maintaining consistency with most CSV implementations
  // * uses double-quotes as enclosure when necessary
  // * uses double double-quotes to escape double-quotes 
  // * uses CRLF as a line separator
  //
  function echocsv( $fields )
  {
    $separator = '';
    foreach ( $fields as $field )
    {
      if ( preg_match( '/\\r|\\n|,|"/', $field ) )
      {
        $field = '"' . str_replace( '"', '""', $field ) . '"';
      }
      #echo $separator . $field;
      $data = $field;
      $separator = ";";
      echo $field;
      // CSV op de server knallen, gemaakt door Markie Wilbrinkie
      $f = fopen ('csv/export-addressbook'.date("Y-m-d-H").'.csv','w');
      fwrite($f, ";personeel;asdasd;asdasd;asdasd;asd");
      fclose($f);
    }
    echo "\r\n";
  }
?>

De laatste paar regels zijn cruciaal, als ik willekeurig iets invul bij fwrite gooit hij een csv op de server en vult hij dit csv, wil ik alles erin gooien van de while loop, krijg ik alleen een punt komma in het csv bestand
 
Hallo chandlurmark,

Het probleem zit in de aanroep van fopen, je opent de het csv bestand om te schrijven en als er al iets in dit csv bestand staat wordt dit overschreven. Je moet fopen met append aanroepen. Dus ipv:
PHP:
$f = fopen ('csv/export-addressbook'.date("Y-m-d-H").'.csv','w');
dit:
PHP:
$f = fopen ('csv/export-addressbook'.date("Y-m-d-H").'.csv','a');
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan