kostenloser Webspace werbefrei: lima-city


Probleme mit CSV-Datei beschreiben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    gretel

    gretel hat kostenlosen Webspace.

    Hallo,

    ich habe Probleme mit meinem Script bzw. Funktion zum Erstellen einer CSV-Datei. Die CSV-Datei wird erstellt wie gewünscht, auch die Inhalte aus der Datenbank werden übernommen, jedoch nicht die Überschriften zu den einzelnen Inhalten. Ich verstehe den Fehler nicht.

    Meine letzte Version der Funktion sah so aus

    function createCSV($inputfields){
    			
    		list($vorname,$nachname,$email)=getUserData();
    		$date=date('Y-m-d-H-i-s');
    		$csv=fopen("csv/".$date."_".$vorname."_".$nachname.".csv", 'w');
    		fwrite($csv,'"'.$email.'","'.$date); /** Hier das Komma zwischen email und date ersetzen **/
    		
    		foreach($inputfields as $inputfields){
    		fwrite($csv,'","'.str_replace("\r","",str_replace("\n"," ",str_replace("\"","'",$inputfields)))); 
                    /** Hier Komma fast am Anfang der Zeile nach $csv, welches in den "" steht ersetzen  **/
    		fwrite($csv,"\"\n");
    		}
    		
                    foreach($inputfields as $inputfield){
    		fwrite($csv,'","'.str_replace("\r","",str_replace("\n"," ",str_replace("\"","'",$_POST[$inputfield])))); 
                    /** Hier Komma fast am Anfang der Zeile nach $csv, welches in den "" steht ersetzen  **/
    		fwrite($csv,"\"\n");
    		}
    		fclose($csv);
    	}


    Wäre für jeden sinnvollen Tipp sehr dankbar.
    Gruss

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. weiß nicht, ob dir das hilft, aber du kannst mit phpmyadmin, eine tabelle direkt aus mysql als csv exportieren.
    Da werden aber auch die Spaltenüberschrifen nicht mitgeschrieben
  4. Autor dieses Themas

    gretel

    gretel hat kostenlosen Webspace.

    danke für deinen Tipp.

    Die Inhalte bekomme ich ja in die CSV-Datei, aber um die Daten weiterverarbeiten zu können benötige ich die dazugehörigen Überschriften.
  5. Was genau willst du überhaupt machen?
  6. Autor dieses Themas

    gretel

    gretel hat kostenlosen Webspace.

    Es soll eine csv-Datei mit den eingegebenen Daten aus dem Webformular erstellt werden. Die Überschriften für diese Daten sind im Array inputfields aufgelistet. Das Auslesen der Daten aus der DB und schreiben in die csv-Datei, wobei das KOmmazeichen als Trennsymbol dient, klappt auch. In dieser csv-Datei sollen nun auch die Überschriften zu den geschriebenen Daten zugeordnet werden. Also an sich nichts besonderes nur das eben eine Zeile mit den Überschriften vor der Zeile mit den Daten in die csv-Datei geschrieben werden soll.
  7. Kannst du mal einer der csv Datein hier posten?
  8. gretel schrieb:
    ... Meine letzte Version der Funktion sah so aus ...
    nach deiner beschreibung kann ich mir so etwas vorstellen:
    <?php
    // vorbereitung der pseudodaten:
    $rows = array(
        array('xx', 'gretel', 'xxgretel@example.org'),
        array('jv', 'czibere', 'jvcz@example.org')
      );
    $sep  = ',';
    $eof  = "\r\n"; // oder PHP_EOL &c.
    $path = './';
    $file = 'test.csv';
    
    // function aufruen, ergebnis zeigen
    if(createCSV($rows, $sep, $eof, $path, $file)) {
      echo "file: <a href=\"$path$file\">$file</a>";
    } else {
      exit('<h1>mist!');
    }
    
    
    function createCSV() {
    
      $args = func_get_args();
      $data = $args[0];
      $sep  = $args[1];
      $eof  = $args[2];
      $path = $args[3];
      $file = $args[4];
    
      // header schreiben:
      $date  = date('Y-m-d H:i:s');
      $rows  = "Date$sep"."Vorname$sep"."Nachname$sep"."Email$eof";
    
      // daten schreiben:
      for($i = 0; $i < count($data); $i++) {
        $rows .= "$date$sep"."{$data[$i][0]}$sep"."{$data[$i][1]}$sep"."{$data[$i][2]}$eof";
      }
    
      // speichern:
      $h = fopen("$path$file", 'w');
      if(fputs($h, $rows)) {
        fclose($h);
        return true;
      } else {
        fclose($h);
        return false;
      }
    }
    hier zum testen.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!