Datenbankabfrage in CSV-Datei schreiben

  • Hallo,


    ich habe mir ein kleines Modul gebastelt, welches mir (User-)Daten aus der Joomla-Datenbank ausliest und diese dann in einem Artikel darstellt.

    Das funktioniert auch prima. Nur würde ich gerne anstatt die Daten auf der Webseite ausgeben zu lassen, diese in eine CSV-Datei schreiben.


    Der Code sieht so aus:


    Wie könnte ich die Ausgabe nun also in eine TXT oder CSV Datei speichern, welche irgendwo innerhalb des Joomla-Root liegen soll?


    Wäre super, wenn mir jemand auf die Sprünge helfen könnte.


    Vielen Dank.

  • Habs hinbekommen.


    Mit Hilfe von "Joomla\CMS\Filesystem\File;" ist es wirklich einfach, das Problem war eher, das ganze zu finden und zu verstehen.

    Bin auch kein Programmierer, maximal Frickler ;-)


    Falls es jemandem hilft irgendwann, alles was man braucht ist:


    Variable $file mit Pfad zur Datei und Dateinamen belegen:

    Code
    $file = JPATH_ROOT . '/Downloads/test.csv'; 


    Und aus meinem obigen Codebeispiel die Ausgabe anstatt auf den Bildschirm in die Datei zu schreiben:

    Code
    foreach ($results as $row) {
    File::append($file, $row['name'] . ", " . $row['username'] . ", " . $row['email'] . ", " . $row['value'] . ", " . $row['registerDate'] . ", " . $row['lastvisitDate'] . "\n");
    }

    Mit "append" wird also immer an die Datei angehangen (damit die Datei nicht mit jedem Datensatz aus dem Array überschrieben wird), von daher lösche ich die Datei immer bei jedem Aufruf des Moduls.

    Das geht ganz einfach mit File::delete($file);


    So denn, hier kann zu.