Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
CSV DAtei [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
CSV DAtei


 
mkoegler
21-08-2003, 11:02 
 
Hallo

ich möchte die Werte einer MYSQL Datenbank in eine CSV Datei schreiben lassen;
Es soll aber immer der aktuelle Datensatz in der Datei stehen und nicht einfach angehängt werden - bisher habe ich mit $fp = fopen($datei, "a"); die Daten in eine Datei geschrieben - hier werden die Datensätze leider nicht überschrieben.

 
Konrad
21-08-2003, 11:29 
 
???
Vielleicht mal mit 'w' anstelle des 'a' versuchen?

Wenn Du fopen() schon gefunden hast, wieso hast Du nicht weitergelesen?
http://de3.php.net/manual/de/function.fopen.php
'w': Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.

 
mkoegler
21-08-2003, 11:48 
 
Wenn ich das Attribut "w" verwende schreibt er mir nur einen Datensatz in die Datei;
Ich lasse mit einer while Schleife die Datensätze auslesen:
hier der Quellcode:
while ($array_result = mysql_fetch_array($result))
{
$string = "".$array_result[1].",".$array_result[2].",".$array_result[3].",".$array_result[4].";";
$datei = "export.csv";
$fp = fopen($datei, "a+");
fputs($fp, $string);
fclose($fp);

}

 
schmalle
21-08-2003, 11:50 
 
ist ja auch kein wunder :) wenn du das in der while() machst, überschreibst du jedesmal den letzten datensatz. daten in der while() sammel/zusammenfassen, und danach in die datei schreiben :)

 
Konrad
21-08-2003, 12:01 
 
Oder vor der 'while' einfach die Datei mit 'w' auf Null-Länge setzen, was aber nicht so schön ist. :D
Wenn nämlich nix aus der DB kommt, haste ne leere Datei.

Also: DB auslesen, String oder noch besser nen Array bauen, schauen, ob da was drin ist, mit 'w' alles auf einmal in die Datei schreiben.

 
mkoegler
21-08-2003, 12:04 
 
auf die einfachsten Sachen kommt man machmal nicht - dank auch

 
mrhappiness
21-08-2003, 12:05 
 
oder sowhile ($array_result = mysql_fetch_array($result))
$dateiinhalt[]=implode(',',$array_result);
$text=implode("\n",$dateiinhalt);
$fp=fopen('datei.ext','wb');
fwrite($fp,$text);
fclose($fp);

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:13 Uhr.