Der Martin: einfache DB-Abfrage via php in csv exportieren

Beitrag lesen

Hi,

dieses Programm erwartet die Daten als csv Datei im Format "Inhalt";

mit Semikolon am Ende des Datensatzes? Das ist untypisch. Als Trennzeichen zwischen den Feldern eines Datensatzes, okay, aber so?

Wie muß ich den Content-Type richtig angeben, dass wenn die Abfrage gestartet wird, nach dem speichern gefragt wird?

Der übliche MIME-Type für CSV ist, soweit ich auf die Schnelle sehe, "text/csv". Ob deine Browser eine Ressource dieses Typs einfach als Text anzeigen, oder sofort zum Speichern anbieten, ist von der Browserkonfiguration abhängig. Wenn du dem Browser gar keine Information geben willst, so dass er wirklich keine andere Chance hat als die Ressource einfach zu speichern, solltest du den generischen Typ "application/octet-stream" verwenden.

Wie schreibe ich den Zeilenumbruch richtig \n o. \t oder ganz anders?

Normalerweise \n, in manchen Fällen auch \r\n. Ein Tabulator \t ist etwas ganz anderes.

/--nb.: $myrow["feld"] kann keine Sonderzeichen, Hochkommas oder sonstiges enthalten, sonst wäre es nicht in die DB gespeichert worden...

Wenn du da so sicher bist ...

while ($myrow = mysql_fetch_array($result))
{
$name='"';
$name.=$myrow["feld"];
$name.='"';
$name.=';'; //-- habe auch schon $name.=';'; versucht
echo $name.'\n';
}

Sieht arg kompliziert aus. Ich würd's übersichtlicher und kompakter setzen:

echo '"' . $myrow['feld'] . '";' . "\n";

Wobei ich immer noch glaube, dass das Semikolon nicht nötig ist ...

Wäre klasse wenn ihr mir hier kurz weiterhelfen könntet.

Ob das Ausgabeformat deinen Vorstellungen entspricht, kannst du ja leicht überprüfen, indem du den MIME-Type zum Testen auf text/plain änderst. Dann sollte die Ausgabe direkt im Browser angezeigt werden.

Ciao,
 Martin

--
Die letzten Worte des Polizisten:
Ich hab mitgezählt, Leute: Sechs Schuss, jetzt hat er keine Munition mehr!