Mette: Myadmin zeigt beim CSV Import "Ungültige Anzahl an Feldern..."

Hallo,

ich muss gestehen, ich mache jetzt zum ersten mal einen CSV import in eine MYSQL Datenbank per PHPMyadmin.
Folgende Grundlagen habe ich geschaffen eine CSV Datei mit 28 Feldern. Die Datensätze sind mit Komma getrennt. Teilweise hat mir Excel um Wörter noch ein Anführungszeichen gepackt.

In meiner MYSQL Datenbank gibt es auch eine Tabelle mit 28 Feldern.

Nun meldet mir PHP Myadmin allerdings "Ungültige Anzahl an Feldern in Zeile 1." Woran kann das jetzt liegen?

Danke eure Mette

  1. Hi,

    Nun meldet mir PHP Myadmin allerdings "Ungültige Anzahl an Feldern in Zeile 1." Woran kann das jetzt liegen?

    An einer ungültigen Anzahl an Feldern in Zeile 1.

    Mit dem bißchen Information, das Du bis jetzt geliefert hast, kann man nicht mehr sagen.

    Wie wär's z.B., die Tabellenstruktur zu zeigen und die angemeckerte Zeile?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  2. Woran kann das jetzt liegen?

    Weiß ich nicht, aber was mir auffällt

    (...) Die Datensätze sind mit Komma getrennt.

    Wenn ich mich recht erinnere erlaubt die CSV-Spezifikation zwar alle möglichen Trenn-Zeichen, aber üblich sind Semikolone.

    Teilweise hat mir Excel um Wörter noch ein Anführungszeichen gepackt.

    Die Anführungsstriche dienen dazu, dass man das Trenn-Zeichen in den Feldern verwenden kann (so wie escapen). Denn
    1,2,3 sind drei Felder
    "1,2",3 sind zwei Felder
    Weise Excell am Besten an um alle Felder Anführungszeichen zu setzen (und nein ich weiß nicht wie das geht weil ich Excell nicht verwende).

    Ich tippe einfach mal darauf, dass phpMyAdmin hier "Standard" verlangt.

    --
    sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
    1. Hi!

      Weise Excell am Besten an um alle Felder Anführungszeichen zu setzen (und nein ich weiß nicht wie das geht weil ich Excell nicht verwende).

      Das geht meines Wissens gar nicht. Excel macht einfach und stellt keine Optionen bereit, die Trennzeichen selbst auswählen zu können.

      Ich tippe einfach mal darauf, dass phpMyAdmin hier "Standard" verlangt.

      phpMyAdmin verlangt kein bestimmtes Format. Es "verlangt" nur, dass man die zu verwendenden Zeichen in die beim CSV-Import angezeigten Eingabefelder einträgt, beziehungsweise die dort stehenden überprüft.

      Lo!

      1. hi,

        Das geht meines Wissens gar nicht. Excel macht einfach und stellt keine Optionen bereit, die Trennzeichen selbst auswählen zu können.

        Welche Excel-Version?

        Hotti

        1. Hi!

          Das geht meines Wissens gar nicht. Excel macht einfach und stellt keine Optionen bereit, die Trennzeichen selbst auswählen zu können.
          Welche Excel-Version?

          Excel 2007. Bei den anderen kann ich mich auch nicht erinnern, dass das konfigurierbar war. Ist ja aber auch egal, ob es Excel kann oder nicht, da man beim PMA die Zeichen einstellen kann.

          Lo!

          1. Das geht meines Wissens gar nicht. Excel macht einfach und stellt keine Optionen bereit, die Trennzeichen selbst auswählen zu können.

            Du nimmst mich/uns auf den Arm!
            Ich schrieb oben dass ich von Excell keine Ahnung habe, aber ich benutze StarOffice seit Version 3.0 und das war auf Windows 3 und da ging das schon!
            Das ist bestimmt nur irgendwie versteckt, ich kann mir nicht vorstellen, dass es die Option nicht gibt, dann könnte man nämlich keine Anführungszeichen in den Feldern/Zellen verwenden.

            Oh appropos: Was vielleicht das Problem ist... sind Anführungszeichen (") in den Werten enthalten? Das würde erklären, dass phpMyAdmin eine falsche Anzahl feststellt. Zum escapen muss das Anführungszeichen verdoppelt werden (sagt Wikipedia, wusste ich auch nicht).
            Aber um sicher zu gehen würde ich den Konflikt ganz auflösen und einfach in den Werten einfache Anführungszeichen,Hochkomma oder Apostrophe verwenden.

            --
            sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
            1. Hallo,

              Das geht meines Wissens gar nicht. Excel macht einfach und stellt keine Optionen bereit, die Trennzeichen selbst auswählen zu können.
              Du nimmst mich/uns auf den Arm!

              äh, nein. Das ist so.

              Das ist bestimmt nur irgendwie versteckt, ich kann mir nicht vorstellen, dass es die Option nicht gibt, dann könnte man nämlich keine Anführungszeichen in den Feldern/Zellen verwenden.

              Das ist ein Fehlschluss. Excel kennt sich schon ein klein wenig mit CSV aus und setzt Anführungszeichen, falls nötig und verdoppelt auch Anführungszeichen in Zellinhalten.

              Freundliche Grüße

              Vinzenz

        2. Hallo,

          Das geht meines Wissens gar nicht. Excel macht einfach und stellt keine Optionen bereit, die Trennzeichen selbst auswählen zu können.

          Welche Excel-Version?

          Alle bisherigen :-)

          http://office.microsoft.com/en-us/excel/HP100141031033.aspx#TextFormats

          wobei "Comma delimited" in Excel 2007 frei, aber korrekter als "Trennzeichen-getrennt" übersetzt wurde. Dabei wird auf das in der Systemsteuerung (Ländereinstellungen bzw Region und Sprache) konfigurierte Listentrennzeichen zurückgegriffen.

          Will man was ein anderes Zeichen als dieses oder den Tabstopp und ist nicht bereit, dafür Windows umzukonfigurieren, dann schreibt man sich seinen Exporter mit ein paar (<100) Zeilen VB(A)-Code selbst ;-) Dieser Exporter könnte mit einer Option ausgerüstet sein, die Zellinhalte zu trimmen.

          Freundliche Grüße

          Vinzenz

          1. Hi,

            Das geht meines Wissens gar nicht. Excel macht einfach und stellt keine Optionen bereit, die Trennzeichen selbst auswählen zu können.
            Welche Excel-Version?
            Alle bisherigen :-)

            gut, bis einschließlich 2003 hätte ich es auch gewusst, für 2007 zumindest vermutet.

            wobei "Comma delimited" in Excel 2007 frei, aber korrekter als "Trennzeichen-getrennt" übersetzt wurde. Dabei wird auf das in der Systemsteuerung (Ländereinstellungen bzw Region und Sprache) konfigurierte Listentrennzeichen zurückgegriffen.

            Nicht erst seit Excel 2007; das ist sogar in Excel 97 schon so. Allerdings kann Excel bis Version 2003 (kann für 2007 keine Aussage treffen) keine CSV-Dateien mehr direkt importieren, die ein anderes Trennzeichen als das Komma verwenden, und klatscht in so einem Fall den ganzen Datensatz in die erste Zelle. Dann muss man über den Import-Assistenten gehen und das Trennzeichen von Hand setzen.

            Will man was ein anderes Zeichen als dieses oder den Tabstopp und ist nicht bereit, dafür Windows umzukonfigurieren, dann schreibt man sich seinen Exporter mit ein paar (<100) Zeilen VB(A)-Code selbst ;-) Dieser Exporter könnte mit einer Option ausgerüstet sein, die Zellinhalte zu trimmen.

            Gute Idee. :-)
            Besser wäre allerdings, das Trimmen beim *Importieren* zu machen, nicht beim Exportieren. Beim Exportieren möchte man ja eher die Felder mit Leerzeichen auf eine gemeinsame Länge bringen, damit die CSV-Datei auch im Editor gut lesbar ist.

            Ciao,
             Martin

            --
            Der Gast geht solange zum Tresen, bis er bricht.