Probleme mit SQL-Dump als CSV

  • Hallo,


    möchte mit phpMyAdmin einen SQL-Dump einer Tabelle als CSV erstellen um in Excel die Spalten bearbeiten zu können.
    Leider sind in den Feldern (sind News-Artikel) auch jede Menge normale Umbrüche und html-Linebreaks drin, wodurch das CSV unbrauchbar wird, da ja jede neue Zeile als ein neuer Datensatz interpretiert wird.


    Was kann man da tun, um ein korrekte CSV-Datei zu erstellen?


    Ralf

  • Du könntest dich bei den Programmierern von phpmyadmin beschweren; ist eigentlich nen Fehler in der export engine - wenn \n nicht umgewandelt wird.


    Du kannst auch einfach keine \n mehr in die sql speichern, sondern nur noch nl2br( $string ); Ich nehm mal an, dass ist nicht das, was du suchst ;)


    Es gibt viele MySQL importer/exporter. Wenn du in google einfach mal 'mysql export cvs' eingibst, wirst du direkt etliche kommerzielle finden.


    Wobei so ein Exporter stumpf gesagt nur aus 20/30 Zeilen einfachem php Code besteht.


    Wenn du dich selbst drantraust
    http://www.modwest.com/help/kb.phtml?qid=135&cat=6
    (Ich habs mal kurz überflogen, sieht lauffähig aus. Du musst es halt nur noch mit n2lbr() erweitern.


    Last Way: Es gibt gewiss auch kostenlose exporter. Du musst sie nur finden => google ;)


    [edit]
    Ganz vergessen:
    mysqldump -u USER -p DBNAME > DBNAME.sql
    Das kann auch jede anständige Tabellenkalkulation importieren.

    Zwei Dinge sind Unbestreitbar:

    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.

    • Die Erde ist eine Scheibe!

    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  • Das Problem liegt nicht bei phpMyAdmin sondern bei den neueren Versionen von Excel.
    Ich habe damals auch einen normalen cvs-export für eine Api von mir gemacht. Damals, mit Excel 97 hat das alles super geklappt. Seit 2000 kapiert Excel es nicht mehr, dass wenn ein String durch " gestartet und beendet wird alles dazwischen (auch die Zeilenumbrüche) als Zelle gelten... eine Lösung habe ich leider auch nicht gefunden... mal mit OpenOffice probiert?


    Dennis : ...wozu braucht man denn hier nl2br??? Und SQL-Dateien mit einer Tabellenkalkulation lesen??? Hab ich noch nie gesehen, lerne aber immer gerne dazu.


    Gruss
    Jan

  • Zitat


    Das Problem liegt nicht bei phpMyAdmin sondern bei den neueren Versionen von Excel.


    Nun gut, das ändert ja nichts daran, dass das Exportskript; wenn es schon CVS Für (MS-Excel) hat, diesen Sonderfall (\n) nicht ordentlich behandlen kann.


    Ich hab das gerade mal getestet. Stimmt in der Tat. Excel 2003 kommt damit nicht klar, lustiger Weise ist das für MS-Access 2003 kein Problem. Also kannst du csv auch in MS-Access öffnen und dann als xls exportieren. Klappt fehlerfrei.


    Zitat

    mal mit OpenOffice probiert?


    Oder das, gute Idee!


    Zitat

    Dennis : ...wozu braucht man denn hier nl2br???


    Nun gut, die Funktion macht aus Zeilenumbrüchen <br /> Bzw. eine eigene Funktion ersetzt es durch jedes Zeichen deiner Wahl. Dann kannst du es zumindest ganz normal in Excel importieren. Und von Excel aus kurz Suchen&Ersetzen benutzen und <br /> wieder zu einem Zeilenumbruch ändern. Dauert keine 2 Sekunden ;)


    Zitat

    Und SQL-Dateien mit einer Tabellenkalkulation lesen???


    Jopp, da stehen ja nur die Aufbauinformationen der Tabelle sowie dessen Content in SQL. Per Makro kannst du aus dieser SQL wieder ne Tabelle bauen.


    hoffe, es bringt dich weiter.

    Zwei Dinge sind Unbestreitbar:

    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.

    • Die Erde ist eine Scheibe!

    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  • Zitat von Dennis The Menace


    Jopp, da stehen ja nur die Aufbauinformationen der Tabelle sowie dessen Content in SQL. Per Makro kannst du aus dieser SQL wieder ne Tabelle bauen.


    :) ...meist wird der Kram doch gebraucht um den Benutzern einen Export zu Excel zu ermöglichen... wenn man da mit Makros kommt, würden die meisten vom Stuhl fallen.


    Kann man in Excel ohne Probleme ein Zeichen gegen einen Zeilenumbruch ersetzen? :rolleyes:

  • Gut, einfach ist es nicht; stimmt. Ich dachte, Excel wäre vielseitiger:


    Code
    1. Sub x()
    2. Selection.Replace "<br />", Chr(10)
    3. End Sub


    [edit]
    Hiermit entschuldige ich mich offiziell bei Excel ^^
    Es geht doch mit der ganz normalen Suche & Ersetze Funktion


    Suchen: <br />
    Ersetzen: <strg+j> (einfach drücken, man sieht zwar kein Zeichen, aber es klappt)

    Zwei Dinge sind Unbestreitbar:

    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.

    • Die Erde ist eine Scheibe!

    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  • 7 Minuten harte google Recherche ;)
    (Sorry, aber: Da kann doch kein Schw**n von alleine drauf kommen, oder?)

    Zwei Dinge sind Unbestreitbar:

    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.

    • Die Erde ist eine Scheibe!

    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  • Mit OpenOffice klappt's nun - zumindest, was die Umbrüche angeht. Da in den html-Felder aber auch alles voller Apostrophs und Anführungszeichen ist, kommt trotzdem im Endeffekt nur Unsinn raus ...


    Ralf

  • Hast du "CSV-Daten für MS Excel" in phpmyadmin gewählt? Falls ja, probier mal den "normalen" CSV-Export. Dort kannst du angeben mit welchem Trennzeichen die Felder eingeschlossen werden. Dort wählst du dann entweder ein Zeichen, bei dem du dir sicher bist, dass es in keinem Feld vorkommt oder ein Steuerzeichen... probier mal.


    Gruss
    Jan