heinetz: CSV Im- und Export Probleme

Hallo Forum,

ich habe ein Problem mit dem CSV Im- und Export mit phpmyadmin und versuche, den Fehler zu verstehen. Die CSV entsteht unter OpenOffice für Mac. Dort lassen sich beim Export einige Optionen festlegen. U.a. der Zeichensatz, der Texttrenner und der Feldtrenner. Ich habe doppelte und einfache Anführungszeichen als Texttrenner sowie Semikoli und Kommata als Feldtrenner versucht. Darüber hinaus UTF-8, Westeuropa ISO 8859-1. Bei Import in phpmyadmin das entsprechende eingestellt (UTF-9 / Latin 1). Der Fehler ist immer "ungültige Anzahl an Feldern in Zeile 2". Die CSV besteht aus zwei Zeilen und auch wenn ich die Zeilen vertausche lautet die Meldung "ungültige Anzahl an Feldern in Zeile 2". Ich gehe also davon aus, dass die Zeilen, bzgl. der Anzahl von Feldern für sich genommen i.O. sind. Daraufhin habe ich die Zeilen auf diesem Weg einzeln importiert, diese Tabelle dann exportiert, um sie dann wieder zu importieren. Der selbe Fehler.

Es gibt einen Weg, beide Zeilen auf einmal ohne Fehlermeldung zu importieren ist folgender:

Die CSV als Westeueropäisch Mac OS abspeichern und mit phpmyadmin als UTF8 zu importieren klappt bis auf die Tatsache, dass das dann die Sonderzeichen zerhaut.

Was kann da los sein?

danke für Tipps und

beste gruesse,
heinetz

  1. Hello,

    hast Du denn in die exportierte Datei schon mal mit einem Hex-Editor reingeschaut, wie sie wirklich aufgebaut ist?

    Enthält die Felder im Text eventuell ebenfalls die Trennzeichen?

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      hast Du denn in die exportierte Datei schon mal mit einem Hex-Editor reingeschaut, wie sie wirklich aufgebaut ist?

      ja, das habe ich eben gemacht, kann damit allerdings überhaupt nichts anfangen.

      Enthält die Felder im Text eventuell ebenfalls die Trennzeichen?

      Auch nochmal überprüft: Die Trennzeichen stehen tatsächlich nur zwischen den einzelnen Feldern und nicht im Text.

      beste gruesse,
      heinetz

  2. Tach!

    ich habe ein Problem mit dem CSV Im- und Export mit phpmyadmin und versuche, den Fehler zu verstehen. [...]
    Was kann da los sein?

    Alles mögliche. Die Zeichenkodierung wird es bei ASCII-kompatiblen Kodierungen nicht sein. Alle Trennzeichen sind eindeutig Bytes zugeordnet und umgekehrt. Kannst du zeigen, was das für Daten sind? Wenn nicht, kannst du das Problem mit harmlosen Daten nachstellen?

    dedlfix.

    1. moin,

      Kannst du zeigen, was das für Daten sind?

      Die mysql-Tabelle sieht wie folgt aus:

      CREATE TABLE IF NOT EXISTS `quiz_100proaktiv_kids` (  
        `id` int(11) NOT NULL,  
        `agegroup` int(11) NOT NULL,  
        `sortnr` int(11) NOT NULL,  
        `topic` int(11) NOT NULL,  
        `topic_text` varchar(255) NOT NULL,  
        `text_i` varchar(255) NOT NULL,  
        `text_q` longtext NOT NULL,  
        `text_a1` longtext NOT NULL,  
        `text_a2` longtext NOT NULL,  
        `text_a3` longtext NOT NULL,  
        `r` int(11) NOT NULL,  
        `text_r1` longtext NOT NULL,  
        `text_r2` longtext NOT NULL,  
        `text_r3` longtext NOT NULL,  
        PRIMARY KEY  (`id`)  
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
      

      Die CSV erstellt mit Excel 2008 für Mac (hier finde ich keine Optionen, die ich beim Export ändern könnte) ist die hier.

      Die versuche ich mit diesen Einstellungen in phpmyadmin zu importieren nachdem ich sie nach UTF 8 konvertiert habe, was mit folgender Fehlermeldung quittiert wird:

      Ungültige Anzahl an Feldern in Zeile 2.

      beste gruesse,
      heinetz

      1. Tach!

        Die CSV erstellt mit Excel 2008 für Mac (hier finde ich keine Optionen, die ich beim Export ändern könnte) ist die hier.
        Die versuche ich mit diesen Einstellungen in phpmyadmin zu importieren nachdem ich sie nach UTF 8 konvertiert habe, was mit folgender Fehlermeldung quittiert wird:
        Ungültige Anzahl an Feldern in Zeile 2.

        Ich hab eine schlechte Nachricht: mein phpMyAdmin der Version 2.11.11.3 liest das problemlos in einen 5.0.77er MySQL-Server ein. So kann ich das Problem nicht nachvollziehen. Ich sehe auch keins in der Datei. Vielleicht ist deine PMA-Version defekt.

        dedlfix.

        1. moin,

          Vielleicht ist deine PMA-Version defekt.

          hab eben eine neue heruntergeladen und es damit probiert. selbes resultat ;(

          beste gruesse,
          heinetz

          1. Hello,

            Vielleicht ist deine PMA-Version defekt.

            hab eben eine neue heruntergeladen und es damit probiert. selbes resultat ;(

            Dann vermut ich, dass Du die Datei eirgenwie mit einem Texteditor, mit Word oder sonst einem Unsinnsprogamm angefasst hast, was dann vielleicht automatisch in "ASCII" wieder abspeichert oder sonstige Veränderungen daran vornimmt, die es dir nicht anzeigt.

            Das schlimmste an der Informationstechnik sind (unerwünschte) Automatiken *stöhn*

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
             ☻_
            /▌
            / \ Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Tach!

              Dann vermut ich, dass Du die Datei eirgenwie mit einem Texteditor, mit Word oder sonst einem Unsinnsprogamm angefasst hast, was dann vielleicht automatisch in "ASCII" wieder abspeichert oder sonstige Veränderungen daran vornimmt, die es dir nicht anzeigt.

              Die von ihm verwendeten Trennzeichen sind in ASCII, ISO-8859-1/Latin1/Windows1252 und UTF-8 gleich kodiert. UTF-8 verwendet für seine Bytesequenzen auch keine Bytewerte, die mit ASCII kollidieren. Zeichenkodierung ist höchstwahrscheinlich nicht das Problem. Zeilenenden kann ich mir schon eher vorstellen, aber auch die sollten eigentlich problemlos erkannt werden. Die Ursache ist irgendwas anderes, was nicht direkt nachvollziehbar scheint.

              dedlfix.

              1. Hello,

                Dann vermut ich, dass Du die Datei eirgenwie mit einem Texteditor, mit Word oder sonst einem Unsinnsprogamm angefasst hast, was dann vielleicht automatisch in "ASCII" wieder abspeichert oder sonstige Veränderungen daran vornimmt, die es dir nicht anzeigt.

                Die von ihm verwendeten Trennzeichen sind in ASCII, ISO-8859-1/Latin1/Windows1252 und UTF-8 gleich kodiert. UTF-8 verwendet für seine Bytesequenzen auch keine Bytewerte, die mit ASCII kollidieren. Zeichenkodierung ist höchstwahrscheinlich nicht das Problem. Zeilenenden kann ich mir schon eher vorstellen, aber auch die sollten eigentlich problemlos erkannt werden. Die Ursache ist irgendwas anderes, was nicht direkt nachvollziehbar scheint.

                Naja: die Bearbeitungskette hat heinetz uns auch nicht schlüssig dargestellt.
                Es reicht doch, wenn auf einem Client unbekannter Bauart die Extraktion der Daten geschieht, und diese dann mittels FTP-Programm unbekannter Einstellung auf einen Server (...) hochgeladen werden.

                Da gibt es soch schon genügend Unsicherheiten (Freiheitsgrade).

                Liebe Grüße aus dem schönen Oberharz

                Tom vom Berg

                --
                 ☻_
                /▌
                / \ Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
      2. Hallo,

        Die CSV erstellt mit Excel 2008 für Mac (hier finde ich keine Optionen, die ich beim Export ändern könnte) ist die hier.

        ich hab's gerade nur theoretisch untersucht und festgestellt, dass die zweite Zeile nicht abgeschlossen ist, d.h. keinen Zeilenumbruch am Ende hat. Was ist, wenn du den probehalber ergänzt?
        Mit unvollständigen Zeilen hat so manches Programm Probleme ...

        Ciao,
         Martin

        --
        Man sollte immer wissen was man sagt
         - aber auf keinen Fall alles sagen, was man weiß.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(