17. März 2023
Aus einer Datenbank-Abfrage eine CSV-Datei exportieren
Mit folgendem Code ist es ganz einfach Daten aus einer Datenbank, sei es MySQL, SleekDB oder eine andere Datenquelle, in eine CSV-Datei zu exportieren. Ich setze dieses Skript z.B. häufig ein um Veranstaltungsanmeldungen zu exportieren und Kunden bereit zu stellen.
$today = date("Y-m-d");
$event = 'Veranstaltungsname';
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=anmeldungen-'.$event.'-'.$today.'.csv'); // Dateiname der CSV
$output = fopen('php://output', 'w');
fputs($output, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) )); // UFT-8 Excel-Fix
fputcsv($output, ['Name', 'E-Mail', 'Event'], ";");
$allitems = $currentstore->findBy(["event", "=", $event]);
foreach($allitems AS $item) {
fputcsv($output, [$item['name'], $item['email'], $item['event']], ";");
}
Code-Sprache: PHP (php)
In diesem Beispiel wird aus einer SleekDB-Datenbank eine Teilnehmerliste exportiert. Wichtig sind hier die Angaben zum Header und die Funktion „fputcsv()“. Mit fputcsv werden die Daten innerhalb einer Schleife in die CSV geschrieben.
Damit das CSV auch in Microsoft Excel problemlos geöffnet werden kann, sollten Semikolons statt Kommata als Trennzeichen verwendet werden. Darüber hinaus wird mit der „BOM“-Sequenz sichergestellt, dass Excel die Daten auch als UTF-8 interpretiert.
Nächster Artikel