Probleme mit CSV-Datei beschreiben
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfang
array
beschreibung
code
dankbar gruss
date
datei
datum
email
ersetzen
file
funktion
inhalt
komma
nachname
problem
tip
url
vorname
zeile
-
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
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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. -
Was genau willst du überhaupt machen?
-
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.
-
Kannst du mal einer der csv Datein hier posten?
-
gretel schrieb:
nach deiner beschreibung kann ich mir so etwas vorstellen:
... Meine letzte Version der Funktion sah so aus ...<?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. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage