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)
Vorhandene CSV-Datei mit weiteren Daten füllen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Vorhandene CSV-Datei mit weiteren Daten füllen


 
Dario_PHP
05-08-2010, 12:49 
 
Hallo zusammen,
ich hab folgendes Problem.
Ich erstelle eine CSV-Datei, soweit alles gut.
Nun probiere ich mit einer weiteren Abfrage die CSV-Datei mit weiteren Werten zu füllen.

Fehlermeldung: "already exists".

Schon klar was das bedeutet, er probiert diese zu erstellen... weiß jemand wie man weiteren Inhalt an eine CSV anhängt... ich finde nichts!

Mein Code:


Select distinct tl_TDurchwahl, Concat(tb_standort.so_kst,tb_abteilung.at_kst), "S"
into outfile 'D:\\Kostenstellen\\DWNRKST.csv'
Fields
Terminated by ';'

From tb_telefonliste join tb_standort on SO_id=TL_Standort
join tb_abteilung on at_id=tl_abteilung
where tl_TDurchwahl != "";



dann geht es weiter mit der weiteren Abfrage


Select distinct tl_Faxnr2, Concat(tb_standort.so_kst, tb_abteilung.at_kst), "F"
into outfile 'D:\\Kostenstellen\\DWNRKST.csv'
Fields
Terminated by ';'

From tb_telefonliste join tb_standort on SO_id=TL_Standort
join tb_abteilung on at_id=tl_abteilung
where tl_Faxnr2 != "";

 
AmicaNoctis
05-08-2010, 12:58 
 
Hallo,

lies mal das MySQL-Handbuch zu into outfile. Ich bin sicher, dort mal gelesen zu haben, dass die Ausgabedatei aus Sicherheitsgründen niemals ersetzt, geändert oder gelöscht wird und auch keinen dynamischen Dateinamen möglich sind.

Du musst sie halt einfach nach jedem Dump umbenennen/mergen/etc.

Gruß,

Amica

 
onemorenerd
05-08-2010, 12:59 
 
Auf direktem Weg nicht möglich, siehe MySQL :: Re: into OUTFILE options - How to append data into the opened file ? (http://forums.mysql.com/read.php?98,135162,135164#msg-135164)

Entweder du machst es gleich mit einer UNION-Query oder du schreibst die Daten eben erst einmal in eine andere Datei und fügst deren Inhalt später in die alte Datei ein. Auf der Kommandozeile geht das mit "cat file2.csv >> file1.csv" und man kann sogar aus dem MySQL-Client heraus solche Befehle ausführen.
mysql> SELECT ... INTO OUTFILE file1.csv;
mysql> SELECT ... INTO OUTFILE file2.csv;
mysql> \! cat file2.csv >> file1.csv

 
Dario_PHP
05-08-2010, 13:13 
 
Vielen Dank für die Antworten,
hmm... ich erstelle jetzt einfach eine neue Tabelle in der Datenbank, leere diese immer bevor ich sie mit meinen Abfragen fülle und erstelle dann dadraus meine CSV.
Aber trotzdem Danke, hatte gedacht das würde funktionieren.

 
eagle275
05-08-2010, 18:04 
 
....gelöscht, falsches Brett


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:24 Uhr.