Hallo Forum,
ich poste es jetz einfach mal hier, vielleicht hilft es ja wem weiter. Hat nix direkt mit Typo3 zu tun. Habe lange dran gehangen, aus einer mysql-DB per PHP eine CSV-Datei zur Weiterverarbeitung zu exportieren, inklusive Spaltenköpfe.
Ich weiss, mysql_num_fields ist veraltet.. klappt aber trotzdem 😉
//Spaltenköpfe ermitteln, Limit 1 weil ich hier erstmal nur die Spaltenköpfe brauche
$new_csv_koepfe = "SELECT * FROM tabelle WHERE bedingung LIMIT 1";
$erg_csv_koepfe = mysql_query($new_csv_koepfe);
while($row = mysql_fetch_array($erg_csv_koepfe)) {
// Anzahl der Felder ermitteln
$j = mysql_num_fields($erg_csv_koepfe);
for($i=0;$i<$j;$i++) {
// Name des aktuellen Feldes ermitteln und an text anhängen für erste Zeile
$headline = $headline.$hoch.mysql_field_name($erg_csv_koepfe,$i).$hoch.";";
}
}
$headline = $headline."\n\r"; //Absatz
//Body erzeugen
$new_csv_inhalt = "SELECT * FROM tabelle WHERE bedingung";
$erg_csv_inhalt = mysql_query($new_csv_inhalt);
while($row2 = mysql_fetch_array($erg_csv_inhalt)) {
// Anzahl der Felder ermitteln
$j = mysql_num_fields($erg_csv_inhalt);
for($i=0;$i<$j;$i++) {
// Name des aktuellen Feldes ermitteln
$k = mysql_field_name($erg_csv_inhalt,$i);
// Dem Feldnamen einen Wert zuweisen
$$k = $row2[$k];
$inhalt = $inhalt.$$k.";"; //inhalt des feldes in variable inhalt schreiben
}
$inhalt=$inhalt."\n"; //Zeilenumbruch
}
$text=$headline.$inhalt;
Die Variable $text enthält nun die Daten für die CSV.
Über
$dateiname = "/opt/lampp/htdocs/ordnerX/$dateiname.csv"; // Name der Datei
$fp = fopen($dateiname , "a+"); // Datei öffnen, wenn nicht vorhanden dann wird die Datei erstellt.
fwrite($fp , $text); // Dateiinhalt in die Datei schreiben
fclose($fp); // Datei schließen
kann diese nun geschrieben werden.
Grüße
David