| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

13-04-2011, 14:00
|
|
albrecht69
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 4
|
|
sql-Abfrage in Datei speichern
Hallo,
ich bin blutiger Anfänger und habe in meinen Büchern und hier im Forum leider bislang nicht die richtigen Antworten gefunden.
Mein Problem ist bestimmt zu einfach...
ich habe eine Abfrage, die ich mit echo widergebe:
$liste="SELECT * FROM tabelle1 WHERE Export='0000-00-00' AND Eingang <>'0000-00-00 00:00:00' ";
$liste1=mysql_query($liste);
while($row=mysql_fetch_assoc($liste1)){
echo "$row[ID], $row[Name], $row[KID], $row[KAnrede]<br>\n";
....
Die Ausgabe mit "echo" klappt prima, ich erhalte alle Datensätze, die der Bedingung in der Abfrage entsprechen.
Jetzt möchte ich dieses Ergebnis in eine csv-Datei packen, um es anschließend per Mail zu versenden.
Das versuche ich mit folgendem:
$fp=fopen($datei,'w');
fputs($fp,"$row[ID];$row[Name]");
fclose($fp);
}...
Leider erhalte ich in meiner Datei nur den letzten Datensatz aus dem Array. Ich müßte also eine Schleife (wie oben vor der echo-Ausgabe) erstellen:
fputs($fp, (while ($row=mysql_fetch_assoc($liste1));
bringt nur ne Fehlermeldung, die Datei bleibt leer.
Was mache ich falsch? Oder, wie bringe ich meine echo-Ausgabe in eine Textdatei?
Vielen Dank schon mal im voraus für Eure Zeit!
|

13-04-2011, 14:09
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Warum verwendest du nicht fputcsv(), wenn du eine CSV-Datei erstellen wilst?
PHP: fputcsv - Manual
|

13-04-2011, 14:48
|
|
albrecht69
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 4
|
|
habe deinen Hinweis so eingebaut:
$fp=fopen($datei,'w');
foreach($rowas$fields){
fputcsv ($fp,$fields);
}
fclose();
es kommt folgende Fehlermeldung:
Warning: fputcsv() expects parameter 2 to be array, string given in /dir/dir15738/bereich/csvexport1.php on line 54
welche ich inhaltlich nicht verstehe. Parameter 2 sollte ein Array sein, ich habe aber einen String übergeben?
Aber $row ist doch mein Array?!? ($rowas$fields)
Mir fehlt gerade die Vorstellungskraft, einfach Datensätze (die über echo ausgegeben werden) in eine Datei zu schreiben.
|

13-04-2011, 14:56
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Lass das foreach() weg. Wozu soll das gut sein?
|

13-04-2011, 15:04
|
|
albrecht69
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 4
|
|
... um mir alle Datensätze in die Datei zu schreiben.
Ich habe es jetzt weggelassen und den 2. Parameter als $row angegeben:
$fp=fopen($datei,'w');
fputcsv ($fp,$row);
Keine Fehlermeldung mehr, aber wieder nur den letzten Datensatz in der Datei. Laut Abfrage sind es aber 3.
|

13-04-2011, 15:12
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Weil du vermutlich für jeden Datensatz eine neue Datei erstellst und die alte überschreibst.
|

13-04-2011, 15:29
|
|
albrecht69
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 4
|
|
ja, klingt logisch.
Wenn ich aber
$fp=fopen($datei,'w');
fputcsv ($fp,$row);
aus meiner while-Schleife rausnehme....
Und beim Schreiben dieser Zeilen hast Du mich auf den Weg gebracht:
Ich mußte lediglich mein
$fp=fopen($datei,'w');
aus der Schleife rausnehmen.
Ich danke vielmals!!! Ich geb' Dir ein Bier aus!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|