Oui, tu enregistres les lignes dont a besoin dans une variable ($out, par exemple) en les concaténant.
Comme tu fais du csv je te rappelle que les colonnes sont séparées par des ';' et les lignes par des "\n" (j'insiste sur les double quotes pour le \n).
Bref à la fin tu balances le bon mimetype (à chercher pour le csv), les infos utiles (nom de ton fichier...etc., voir comment on crée un fichier à télécharger et comment on force le téléchargement), puis tu fais un echo de ta variable $out.
Et là le client, en exécutant ton php, va se retrouver à télécharger un fichier csv que tu viens de générer en direct live.
Tu peux toujours si besoin faire des liens hypertexte vers ton fichier php et donc lui passer des paramètres qui lui permettront de générer des fichiers csv différents.
Enjoy !
---------------
Directeur Technique (CTO)