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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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