Daten aus Datenbank als CSV speichern

deostift

Erfahrenes Mitglied
Hallo zusammen,

ich habe eine Frage: Wie kann ich Daten die ich aus einer mysql Datenbank ausgelesen habe so umbauen, damit ich diese als CSV in Excel importieren kann?

Mühe mich gerade mit dem hier ab, erziele aber leider keine Erfolge (Excel fügt die Daten als normalen Text ein):

PHP:
<?php
header('HTTP/1.1 200 OK');
header('Status: 200 OK');
header('Accept-Ranges: bytes');
header('Content-Transfer-Encoding: Binary');
header('Content-Type: application/force-download');
header('Content-Disposition: inline; filename=datadump.csv');

echo '"ID","name","webname","type","unit"'."\n";
echo '"1","Test","Zeitstempel","Time","yyyy-mm-dd hh:mm:ss"'."\n";
echo '"2","Test","Umgebungstemperatur","TEMP","°C"'."\n";
?>

Danke für Eure Hilfe... Deo
 
Hallo!

Z.b. mit fputcsv().
Und damit nicht nur der letzte Datenbankeintrag in die CSV-Datei eingetragen wird, packst Du die ganze Geschichte in eine while()-Schleife.
Muss natürlich vor dem senden an den Browser geschehen.

Gruss Dr Dau
 
Vielen Dank, DrDau.

Ich wollte das so lösen, dass der User beim klicken des Downloadlinks gleich das File zum download angeboten bekommt ..also kein File erzeugen.

Habs nun wie folgt gelöst:

<Link auf die nachstehende php-Datei>

PHP:
header('HTTP/1.1 200 OK');
header('Status: 200 OK');
header('Accept-Ranges: bytes');
header('Content-Transfer-Encoding: Binary');
header('Content-Type: application/force-download');
header('Content-Disposition: inline; filename=datadump.csv');

echo '"ID"|"Anlage"|"Abszisse"|"Ordinate"|"Ordinate2"';
echo '"1"|"Test"|"Zeitstempel"|"Time"|"Value"'."\n"; 
// und so weiter ...

Wenn der User die Datei dann sofort in Excel z.B. öffnen lässt, kann er mit "Text to Column" und dem Setzen des | als Trennzeichen, die Werte auf die Spalten aufdröseln ...
 
Zurück