kills Geschrieben 22. August 2003 Geschrieben 22. August 2003 OS auf Server: Windows: $txt .= $zeile["ID"].";"; $txt .= $zeile["kdnr"].";"; $txt .= $zeile["eintragsdatum"].";\r\n"; Linux: $txt .= $zeile["ID"].";"; $txt .= $zeile["kdnr"].";"; $txt .= $zeile["eintragsdatum"].";\n"; mit diesem code bekommst du eine Strichpunkt getrennte datei. wäre also sinnvoll diese nicht als .txt sondern als .csv zu speichern! diese eignet sich auch dann später gut dafür um den inhalt in eine db zu importieren. Zitieren
user103109 Geschrieben 22. August 2003 Autor Geschrieben 22. August 2003 Klasse, es scheint jetzt zu funktionieren, danke. Es klappt auch mit der csv Datei. Beim nächsten Problem melde ich mich wieder..... :eek: Zitieren
user103109 Geschrieben 25. August 2003 Autor Geschrieben 25. August 2003 Zum Thema CSV-Datei habe ich auch noch eine Frage: Wie kann man diese ordentlich formatieren ? Also schön mit Überschriften (ID, Kundennummer, Eintragsdatum) und darunter dann die Daten. Jetzt sieht das ja nicht so toll aus: 137;5854;2003-08-21 So soll das in Excel aussehen: ID Kundennummer Eintragsdatum 137 5854 2003-08-21 ........ Zitieren
kingofbrain Geschrieben 25. August 2003 Geschrieben 25. August 2003 Wenn Du damit meinst, Du willst die Überschriften in den tatsächlichen Spaltenüberschriften haben, wirst Du AFAIK mit csv-Dateien keine Möglichkeit haben, dass zu machen. Wenn Du sie nur als Überschrift in der ersten Zellenzeile haben willst, dann erstellst Du als erste Zeile in Deiner Datei den Eintrag ID;BLa;blubb; Peter Zitieren
kills Geschrieben 25. August 2003 Geschrieben 25. August 2003 Original geschrieben von kingofbrain Wenn Du damit meinst, Du willst die Überschriften in den tatsächlichen Spaltenüberschriften haben, wirst Du AFAIK mit csv-Dateien keine Möglichkeit haben, dass zu machen. Wenn Du sie nur als Überschrift in der ersten Zellenzeile haben willst, dann erstellst Du als erste Zeile in Deiner Datei den Eintrag ID;BLa;blubb; Peter ja was excel angeht ist das so richtig. aber wenn du die csv in access importiert kannst du den ersten datensatz als Spaltenüberschrifen nutzen. Viele Grüße kills Zitieren
kills Geschrieben 25. August 2003 Geschrieben 25. August 2003 Original geschrieben von user103109 Naja, wenn ich weiter wüsste, würde ich wohl kaum hier was posten, oder ? Habe ja geschrieben, dass ich da noch Anfänger bin und das erst seit 3 Tagen mache.. Also die Echo Ausgabe ist einwandfrei im Browser. Alle Einträge sind schön untereinander wie es sein soll. Aber die TXT-Datei will nicht so recht. Es muss also an folgenden Teil liegen: $txt .= $zeile["ID"]." "; $txt .= $zeile["kdnr"]." "; $txt .= $zeile["eintragsdatum"]."<br>"; Wie Ihr seht (oder auch nicht ), habe ich auch schon mal mit nbsp probiert, aber trotzdem schreibt er alles hintereinander. Das <br> wird ebenfalls in Word (und Editor) angezeigt. nochmal ne kurze erklärung dazu. die <br> werden dir in allen editoren angezeigt weil dies ein html tag ist. dieses <br> wird nur von browsern als ein zeilenumbruch interpretiert. word, ms-editor, usw. benutzen, wie schon oben oftmals genannt \r\n (weil windows) und unter linux musst du deine textdateien dann halt mit \n deine zeilenumbrüche "erzeugen". verständlich? Also in html im browser <br> = in word (windows) \r\n = (unix) \n Zitieren
user103109 Geschrieben 27. August 2003 Autor Geschrieben 27. August 2003 Ok, ich lass' das jetzt mit der Formatierung und möchte stattdessen in der ersten Zelle von Excel den Eintrag ID;Kundennummer;Eintragsdatum stehen haben. Dazu habe o.g. Tip befolgt (von Hand die erste Zeile einfügen). Allerdings wird diese Zeile automatisch wieder überschrieben, wenn ich einen neuen Eintrag machen möchte. Ich vermute, dass es an der verwendeten Schleife liegt: while($zeile=mysql_fetch_array($result)){ $txt .= $zeile["ID"].";"; $txt .= $zeile["kdnr"].";"; $txt .= $zeile["eintragsdatum"].";\r\n"; } Hier wird wohl einfach die Zelle A1 überschrieben. Dann habe ich probiert, den Text in einer Variablen zu speichern: $ueberschrift = "ID;Kundennummer;Eintragsdatum"; Problem: Wenn ich jetzt diesen Text in meine CSV Datei ganz oben haben will, muss ich doch bei folgenden Part diesen Variable einfügen, oder : $filepointer = fopen("positivliste.csv","w"); fwrite($filepointer,$txt, $ueberschrift); <---- hier zusätzlich $ueberschrift fclose($filepointer); Aber dann ist die Datei leer. Ich habe es bisher nur geschafft, die Variable innerhalb der Schleife einzufügen. Dann jedoch bekomme ich die Zeile "ID,Kundennummer, Eintragsdatum" jedoch genauso oft angezeigt wie die eigentlichen Datensätze (klar, weil er mehrmals durchläuft) Was mache ich da noch falsch ? Zitieren
kingofbrain Geschrieben 27. August 2003 Geschrieben 27. August 2003 Initialisier halt Deine Variable $txt mit "ID,Kundennummer, Eintragsdatum" und beginne dann die Schleife, in der die Werte an den String gehängt werden. Nach der Schleife schreibst Du, und fertig. Peter Zitieren
user103109 Geschrieben 27. August 2003 Autor Geschrieben 27. August 2003 Danke, king. Scheint zu funktionieren mit $txt .= "ID;Kundennummer;Eintragsdatum;\r\n"; Nur Excel meckert rum: Kann Datensatz 1 nicht lesen. Mit dem Editor klappt es dagegen einwandfrei... Zitieren
kills Geschrieben 28. August 2003 Geschrieben 28. August 2003 Original geschrieben von user103109 Ok, ich lass' das jetzt mit der Formatierung und möchte stattdessen in der ersten Zelle von Excel den Eintrag ID;Kundennummer;Eintragsdatum stehen haben. Dazu habe o.g. Tip befolgt (von Hand die erste Zeile einfügen). Allerdings wird diese Zeile automatisch wieder überschrieben, wenn ich einen neuen Eintrag machen möchte. in einer Variablen zu speichern: $ueberschrift = "ID;Kundennummer;Eintragsdatum\r\n"; $filepointer = fopen("positivliste.csv","w"); fwrite($filepointer,$ueberschrift.$txt); <---- hier zusätzlich $ueberschrift fclose($filepointer); [/PHP] Gruß kills Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.