[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
mySQL-Abfrage in CSV oder XLS exportieren. - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Ray
Beiträge: 38
Registriert: 9. Okt 2007, 02:14

mySQL-Abfrage in CSV oder XLS exportieren.

15. Nov 2012, 17:53

Liebe Redaxianer,

ich möchte aus einer mySQL Datenbank per PHP eine CSV oder XLS Datei zur weiteren Verarbeitung erstellen. Dafür habe ich folgenden Code recherchiert:

Code: Alles auswählen

$result = mysql_query('SELECT * FROM `markers`'); 
if (!$result) die('Couldn\'t fetch records'); 
$num_fields = mysql_num_fields($result); 
$headers = array(); 
for ($i = 0; $i < $num_fields; $i++) 
{     
       $headers[] = mysql_field_name($result , $i); 
} 
$fp = fopen('php://output', 'w'); 
if ($fp && $result) 
{     
       header('Content-Type: text/csv');
       header('Content-Disposition: attachment; filename="export.csv"');
       header('Pragma: no-cache');    
       header('Expires: 0');
       fputcsv($fp, $headers); 
       while ($row = mysql_fetch_row($result)) 
       {
          fputcsv($fp, array_values($row)); 
       }
die; 
} 
Nun gibt mir das Skript direkt die mit Komma separierten Tabelleninhalte aus - jedoch keine Datei. Sollte mit dem Skript und content-disposition keine CSV-File erzeugt werden?

Die Daten enthalten Kommata, die Ordnerberechtigungen sind auf 777.

Ich freue mich, wenn ihr mir einen Tipp dazu geben könnt! :)

Benutzeravatar
Cheffchen
Beiträge: 1809
Registriert: 3. Mär 2009, 13:51
Wohnort: Berlin
Kontaktdaten: Website

Re: mySQL-Abfrage in CSV oder XLS exportieren.

15. Nov 2012, 19:13

Hallo,
wieso machst das nicht einfach mit den DB Programm unter export?
ersetzte mal

Code: Alles auswählen

header('Content-Type: text/csv'); 
in

Code: Alles auswählen

header("Content-type: application/octet-stream"); 
ps: csv finde ich fuhrchtbar, nur probleme umbrüche, formatierungen, Spalten passen nicht usw. xml sollte man immer nehmen wen es geht.
Wenn nicht das DB Program nutzt etwas mehr arbeite aber 100mal sicherer das alle daten erhalten bleiben wie möchtest

Code: Alles auswählen

       while ($row = mysql_fetch_row($result)) 
       {
$OUT3b.="
<col>
<o_spielplatz_id>".$row[o_spielplatz]."</o_spielplatz_id>
<sicherheit>".$row[sicherheit]."</sicherheit>
<beschilderung>".$row[beschilderung]."</beschilderung>
<schnittbewertung>".$row[schnittbewertung]."</schnittbewertung>
<nachricht>".$row[nachricht]."</nachricht>
</col>\r\n";
}

$output ='<?xml version="1.0"?><tabelle>'.utf8_encode($OUT3b).'</tabelle>';
header("Cache-Control: cache, must-revalidate");
header("Pragma: public");
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=ausgabe.xml");
echo $output;
exit();
Cheffchen

Zurück zu „Sonstiges“