csv einfach zum download anbieten
Heiko
- datenbank
Hallo zusammen & schönes Wochenende,
ich hab einem Kunden ein cms mit php&mysql gebastelt in dem sich User mit sehr vielen Daten anmelden müssen. Diese Daten sind nun alle in einer tabelle gespeichert.
Ich würde es meinem Kunden jetzt gerne ermöglichen eine csv mit genau dieser tabelle herunterzuladen damit er die user direkt in sein Excel integrieren kann (Newsletter per snailmail usw.)
Hat jemand vielleicht ne Hilfe wie ich so eine csv dynamisch erstellen lassen kann? tutorials? Beispielscripte?
Wär prima!
Vielen Dank,
Heiko
Hallo zusammen & schönes Wochenende,
Hat jemand vielleicht ne Hilfe wie ich so eine csv dynamisch erstellen lassen kann? tutorials? Beispielscripte?
Beim CSV Trennzeichen der Spalten musst du aufpassen, es darf nicht in den Werten einer Spalte vorkommen.
Dann erstellst du ein Script, evntl. in PERL was die Tabelle ausliest und mit den Werten die CSV Datei zeilenweise schreibt.
Ansonsten reicht es sicher, wenn ein Cronjob das Erstellen der CSV Datei macht, also regelmäßig auf dem Server.
Diese CSV Datei verlinkst du einfach auf der Seite. Klick ...
Gruss, Rolf
Hi,
gibt ja da den einfachen weg über PHP:
<?php
// Verbindung zur Datenbank
$db = mysql_connect(... , ... , ...);
mysql_select_db(... , $db);
// Datenabfrage
$query = "SELECT * FROM <TABLE>;";
$res = mysql_query($query , $db);
// Datenauswertung
if(! mysql_num_rows($res)) {
echo "Keine Daten gefunden!";
// oder:
// header("Location: errorpage.htm");
} else {
$csv_output = "";
while($row = mysql_fetch_row($res)) {
// Erzeugt semikolongetrennte Werte, die mit "" eingeschlossen sind (CSV)
$csv_output .= """.implode("";"", $row).""\n";
}
header("Content-Type: text/x-csv");
header("Content-Disposition: attachment; filename=list.csv");
echo $csv_output;
}
?>
Hinweis: Keine Leerzeichen vor dem ersten <?php, sonst gehts net ;o)
Gruss Stefan
Hi,
ma'ne Frage (ich kenne PHP nicht)
header("Content-Type: text/x-csv");
header("Content-Disposition: attachment; filename=list.csv");
Gibt die header() Funktion jedesmal eine Leerzeile aus? Wenn ja, dürfte das da oben nicht klappen, weil die Leerzeile ja erst kommen muss, wenn der header zuende ist.
Gruss, Rolf