ChrisB: Export nach cvs klappt nur teilweise...

Beitrag lesen

Hi,

Der Code funktioniert soweit ganz gut, bis auf das der letzte Datensatz in der MySQL Tabelle immer doppelt aufgelistet wird.

Na dann schau dir doch mal an, was du da eigentlich machst ...

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
...
$data = "...";

$line .= $data;
$data .= trim($line)."\n";
}

Was passiert denn da jetzt genau?

Erster Schleifendurchlauf:

$data = "datensatz 1";
$line .= $data; // $line hat jetzt den Inhalt "datensatz 1" (und du bekommst - sofern du das error_reporting vernuenftig eingestellt hast - eine Warnmeldung, weil du $line ueberhaupt nicht initialisiert hast)
$data .= trim($line)."\n"; $data hat jetzt den Inhalt "datensatz 1".trim("datensatz 1")."\n", also "datensatz 1datensatz 1\n"

Naechster Schleifendurchlauf:

$data = "datensatz 2";
$line .= $data; // $line hat jetzt den Inhalt "datensatz 1datensatz 2"
$data .= trim($line)."\n"; $data hat jetzt den Inhalt "datensatz 2".trim("datensatz 1datensatz 2")."\n", also "datensatz 2\ndatensatz 1datensatz 2\n"

...

Computer sind dumm, die tun nur genau was du ihnen sagst - also musst du aufpassen, dass du ihnen keinen Bloedsinn erzaehlst.

Vorschlag:
Jetzt schreibst du dir noch mal auf Papier auf, was in jedem Schleifendurchlauf *wirklich* passieren soll, spielst das mal analog fuer ein paar Datensaetze durch - und setzt es dann in entsprechenden PHP-Code um.

MfG ChrisB

--
"The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."