MySql Daten in eine Datei schreiben

grotti

Grünschnabel
Mein Script:

mysql_select_db($database,$verbind);
$lesen="SELECT * FROM ...";
$result=mysql_db_query($database,$lesen,$verbind);
$fp=fopen("test.txt","w+");
flock($fp,2);
if($fp){
while ($row=mysql_fetch_row($result)){
echo $row[0].$row[1].$row[3]."<br>";

fseek($fp,0);
fwrite($fp,$row[0],5);

fseek($fp,12,SEEK_SET);
fwrite($fp,$row[1],8);

fseek($fp,20,SEEK_SET);
fwrite($fp,$row[3],6);

fseek($fp,26,SEEK_SET);
fwrite($fp,$row[7],4);

fseek($fp,30,SEEK_SET);
fwrite($fp,$row[6]."\n",8);
}
}
flock($fp,3);
fclose($fp);

Ich bekomme immer nur den letzten Datensatz in die Datei geschrieben.
Ich dachte das Auslesen mit mysql_fetch_row gibt mir ein Array aus.
Wie mache ich das, dass alle Datensätze in die Datei geschrieben werden.
Ich weiß, es ist bestimmt super einfach, aber ich komme nicht auf die Lösung.
Danke für eure Hilfe im voraus
 
Hmm.... vielleicht weil du am Anfang der while-Schleife immer wieder den Dateizeiger mit fseek($fp, 0); auf den Anfang der Datei setzt und damit immer wieder von Anfang an geschrieben wird. Also werde die Daten die schon drin stehen wieder überschrieben...

Tip: mit [ PHP ][ /PHP ] kann man den Code wunderbar formatieren lassen. Dann haben vielleicht mehr Leute Lust sich das anzugucken.

Gruß,
Dominik
 
Ich würde das ganz simple mit einem sprintf machen und die Tabellen-Spalten mit Hilfe von Tab-Stops trennen:

PHP:
$line = sprintf("%s\t%s\t%s\n", $spalte[1], $spalte[2], $spalte[3]);
fputs($fd, $line);
 
Zurück