MYSQL Ausgabe in scv
Anreaa
- excel
- mysql
0 Matthias Apsel1 Rolf b
Ich möchte das meine Ausgabe in eine csv Datei geschrieben wird, doch leider ist alles in einer einizgen Zeile. Wie bekommeich den einen Zeilenvorschub in meine Ausgabe?
Andreas
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=namen.csv');
echo 'nr;';
echo 'vorname;';
echo 'name;';
$sql = "select * from name";
$ergebnis mysql_query($sql);
while ($output = mysql_fetch_object(ergebnis))
{
echo $output->nr.';';
echo $output->vorname.';';
echo $output->name.';';
}
Hallo Anreaa,
Ich möchte das meine Ausgabe in eine csv Datei geschrieben wird, doch leider ist alles in einer einizgen Zeile. Wie bekommeich den einen Zeilenvorschub in meine Ausgabe?
echo "\n";
Bis demnächst
Matthias
Herzlich willkommen im Wahnsinn der Datenrepräsentation :)
Vorsicht, Betriebssystem. Vorsicht, Steuerzeichen. Vorsicht, Zeichencodierung.
Hast Du Dir schon mal angeguckt, was Du in phpmyadmin alles einstellen kannst beim CSV Export? Die Vielfalt hat gute Gründe.
Zeilenende:
Unixoide Betriebssysteme sind als Zeilenende-Markierung mit \n (auch Line Feed genannt, Code 0x0a) zufrieden. Windows bevorzugt \r\n (Carriage Return, LineFeed, Codefolge 0x0d 0x0a), die pre-Unix MAC OS verwendeten nur \r. Viele Windows-Programme akzeptieren mittlerweile auch Unix-terminierte Zeilen. Aber nicht zwingend alle. Ein alter Mac spuckt meines Wissens, wenn er \n bekommt.
Feldende:
Wodurch terminierst Du Deine Felder? Durch ein Komma, ein Semikolon? Durch was anderes? CSV hieß mal "Comma Separated Values", man findet aber auch "Character Separated Values" und dann ist die Pandorabüchse offen. Komma, Semikolon, Space, Tab, wasweißichwassonst. Das muss der User, der den Export bestellt, eventuell vorgeben können.
Trennzeichen im Feldinhalt
Was ist, wenn deine Daten einen Zeilen- oder Feldterminator als Datenzeichen enthalten. In dem Fall musst Du den Feldinhalt in Anführungszeichen setzen und HOFFEN, dass das verarbeitende Programm eine Zeilenende-Sequenz, die innerhalb der Anführungszeichen steht, nicht als Ende der Row ansieht (bin hier mit Excel schön böse reingefallen).
Anführungszeichen im Feldinhalt
Das soll man verdoppeln, wenn's vorkommt. Aber was ist das Anführungszeichen? Ist es ' oder "? Oder was frei vorgegebenes?
Feldnamen in Zeile 1? Das ist optional. Und sollte beim Export steuerbar sein.
Zeichencodierung UTF-8 als Zeichencodierung verwenden zu wollen ist löblich, aber durchaus nicht immer verwendbar. Eventuell muss man sich beim Export den Fähigkeiten des Importprogramms anpassen.
Die gute Nachricht ist diese: Wenn Du das Betriebssystem und das Programm, mit dem importiert werden soll, genau kennst, kannst Du Dir all diese Überlegungen schenken. Aber wie das so ist, wenn das Feature erstmal da ist, bekommen die Nutzer auf einmal Junge. Von daher, verbau Dir nichts.
Rolf
Hallo und gute Nacht,
[•••]
das ist ja wunderschön geschrieben, fast so, wie eine Weihnachtsgeschichte :-)
Man müsste es einrahmen, und als Kunstwerk an die Wand hängen...
Meinen Punkt hast Du bekommen.
Grüße
TS