Du vill inte att det ska köras som en fråga. Det är vanligtvis bättre att ha många små enkla frågor istället för en komplicerad fråga. Jag skulle faktiskt föreslå att du uppdaterar din kod så att den har ännu fler frågor, till exempel bör innehållet i "not exists()" inte göras som en underfråga, det borde vara en helt separat fråga för att förbättra prestandan.
Det finns två delar, först måste du skicka rätt HTTP-rubriker för att utlösa en CSV-nedladdning:
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="export.csv";' );
Sedan är det bara att skriva ut data i CSV-format:
while ($row = mysql_fetch_array($myQuery)) {
$first = true;
foreach ($row as $cell) {
if ($first)
$first = false;
else
print ',';
print '"' . addslashes($cell) . '"';
}
print "\n";
}
Obs:CSV är ett dåligt format, och detta fungerar bara i vissa utgåvor av Microsoft Excel. Beroende på var användaren bor (t.ex. Europa) kanske det inte fungerar korrekt. För de flesta utgåvor av Excel fungerar dock ovanstående. Det finns ingen bra lösning förutom att undvika att använda CSV.