Nechcete, aby to běželo jako jeden dotaz. Obvykle je lepší mít spoustu malých jednoduchých dotazů místo jednoho složitého dotazu. Ve skutečnosti bych navrhoval, abyste aktualizovali svůj kód, aby měl ještě více dotazů, například obsah "neexistuje()" by neměl být prováděn jako dílčí dotaz, měl by to být zcela samostatný dotaz pro zlepšení výkonu.
Existují dvě části, nejprve musíte odeslat správné záhlaví HTTP, aby se spustilo stahování CSV:
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="export.csv";' );
Poté stačí data vytisknout ve formátu CSV:
while ($row = mysql_fetch_array($myQuery)) {
$first = true;
foreach ($row as $cell) {
if ($first)
$first = false;
else
print ',';
print '"' . addslashes($cell) . '"';
}
print "\n";
}
Poznámka:CSV je špatný formát a bude fungovat pouze v některých edicích aplikace Microsoft Excel. V závislosti na tom, kde uživatel žije (např.:Evropa), nemusí fungovat správně. Pro většinu edic Excelu však bude výše uvedené fungovat. Neexistuje žádné dobré řešení kromě toho, že se vyhnete použití CSV.