Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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

........

Geschrieben

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

Geschrieben
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

Geschrieben
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

Geschrieben

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 ?

Geschrieben

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

Geschrieben

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...

Geschrieben
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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...