CSV = Значения, разделенные запятыми = Разделите ваши значения запятыми
Вы должны выводить / выводить результаты в виде строки за строкой, разделенной запятой (,).
Я предполагаю, что ваш $ query является набором результатов вашего запроса, который является ассоциативным массивом:
while($query = mysql_fetch_assoc($rs)) {
// loop till the end of records
echo $query["field1"] . "," . $query["field2"] . "," . $query["field3"] . "\r\n";
}
где $ rs - дескриптор ресурса.
Чтобы позволить браузеру открывать окно загрузки, вы должны установить заголовок в начале файла (предположим, что ваше имя файла - export.csv):
header("Expires: 0");
header("Cache-control: private");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Description: File Transfer");
header("Content-Type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=export.csv");
Вот и все!
p.s. Этот метод не оставляет физический файл на сервере. Если вы намеревались создать файл на сервере, используйте традиционные функции fopen и fwrite.