Import funktioniert nicht

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Der Import wurde mir als erfolgreich gemeldet.
    Lediglich die Werte werden mir im PHP Admin als Nullen angezeigt.

    Kann mir jemand mal die Erste Zeile für den Import als Beispiel hier zeigen.

    'tag','monat','jahr','zahl1','zahl2','zahl3','zahl4','zahl5','zahl6'
    '9','10','1955','13','41','3','23','12','16'
    '16','10','1955','12','32','30','49','3','18'
    '23','10','1955','34','12','14','24','36','23'
    '30','10','1955','30','13','36','44','23','4'
    '6','11','1955','31','44','6','49','5','39'
    '13','11','1955','29','44','6','37','22','18'

    Kommentar


    • #17
      Ich habe gerade die Tabelle genommen wie sie ist, mit der Endung .csv abgespeichert und über phpMyAdmin ohne Probleme erst importiert, dann noch einmal exportiert, nur um zu schauen, was aus der Tabelle wurde und daraus wurde halt:

      Code:
      CREATE TABLE IF NOT EXISTS `table 2` (
        `COL 1` varchar(3) DEFAULT NULL,
        `COL 2` varchar(5) DEFAULT NULL,
        `COL 3` varchar(4) DEFAULT NULL,
        `COL 4` varchar(5) DEFAULT NULL,
        `COL 5` varchar(5) DEFAULT NULL,
        `COL 6` varchar(5) DEFAULT NULL,
        `COL 7` varchar(5) DEFAULT NULL,
        `COL 8` varchar(5) DEFAULT NULL,
        `COL 9` varchar(5) DEFAULT NULL
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
      
      --
      -- Daten für Tabelle `table 2`
      --
      
      INSERT INTO `table 2` (`COL 1`, `COL 2`, `COL 3`, `COL 4`, `COL 5`, `COL 6`, `COL 7`, `COL 8`, `COL 9`) VALUES
      ('tag', 'monat', 'jahr', 'zahl1', 'zahl2', 'zahl3', 'zahl4', 'zahl5', 'zahl6'),
      ('9', '10', '1955', '13', '41', '3', '23', '12', '16'),
      ('16', '10', '1955', '12', '32', '30', '49', '3', '18'),
      ('23', '10', '1955', '34', '12', '14', '24', '36', '23'),
      ('30', '10', '1955', '30', '13', '36', '44', '23', '4'),
      ('6', '11', '1955', '31', '44', '6', '49', '5', '39'),
      ('13', '11', '1955', '29', '44', '6', '37', '22', '18');
      Nun brauchst Du nur noch die Namen für die Felder anpassen und der Tabelle einen Namen geben. Besser wäre es sicherlich, wie hier schon erwähnt varchar durch int zu ersetzen und in der CSV die 'Zeichen' zu entfernen.

      Kommentar


      • #18
        Ist die csv so richtig geschreiben ?

        tag,monat,jahr,zahl1,zahl2,zahl3,zahl4,zahl5,zahl6
        9,10,1955,13,41,3,23,12,16
        16,10,1955,12,32,30,49,3,18
        23,10,1955,34,12,14,24,36,23
        30,10,1955,30,13,36,44,23,4
        6,11,1955,31,44,6,49,5,39
        13,11,1955,29,44,6,37,22,18
        20,11,1955,27,44,8,16,12,4

        Kommentar


        • #19
          Sollte so richtig sein, doch wenn Du die gleich als sql speicherst und importierst, sollte das auch gehen. Habe es mal gerade so probiert zu importieren:

          Code:
          CREATE TABLE IF NOT EXISTS `Testname` (
            `tag`   int(2) DEFAULT NULL,
            `monat` int(2) DEFAULT NULL,
            `jahr`  int(4) DEFAULT NULL,
            `zahl1` int(2) DEFAULT NULL,
            `zahl2` int(2) DEFAULT NULL,
            `zahl3` int(2) DEFAULT NULL,
            `zahl4` int(2) DEFAULT NULL,
            `zahl5` int(2) DEFAULT NULL,
            `zahl6` int(2) DEFAULT NULL
          ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
          
          INSERT INTO `Testname` (`tag`, `monat`, `jahr`, `zahl1`, `zahl2`, `zahl3`, `zahl4`, `zahl5`, `zahl6`) VALUES
          (9, 10, 1955, 13, 41, 3, 23, 12, 16),
          (16, 10, 1955, 12, 32, 30, 49, 3, 18),
          (23, 10, 1955, 34, 12, 14, 24, 36, 23),
          (30, 10, 1955, 30, 13, 36, 44, 23, 4),
          (6, 11, 1955, 31, 44, 6, 49, 5, 39),
          (13, 11, 1955, 29, 44, 6, 37, 22, 18);
          Und dann denke daran, jeden Namen für Tabelle oder Felder, den Du änderst, musst Du zweimal ändern, also oben wie unten.

          Kommentar


          • #20
            Es hat geklapt die Datenbank ist drin, allerding ohne eine Spallte die fortlaufend nummeriert ist. Ich meine die Spalte ID
            Kann ich die noch nachträglich einfügen. Wie kann ich das machen ?

            Kommentar


            • #21
              Rufst die Datenbank und die Tabelle auf, dann nicht "Ansicht" sondern ->Struktur auswählen.

              Unter der Liste sollte nun eine Zeile mit Auswahl "1 Spalte" einfügen und Auswahl "An den Anfang der Tabelle" angezeigt werden. Auf OK.

              Bei der sich neu öffnenden Seite die Spalte mit ID benennen, bei INT belassen und bei AUTO INCREMENT ein Häkchen setzen. Das sollte es dann gewesen sein.

              Kommentar


              • #22
                Zitat von Tastatur Beitrag anzeigen
                Es hat geklapt die Datenbank ist drin, allerding ohne eine Spallte die fortlaufend nummeriert ist.
                Ich meine die Spalte ID Kann ich die noch nachträglich einfügen. Wie kann ich das machen ?
                Hi Tastatur,

                du arbeitest doch mit phpMyAdmin. Damit kannst du doch eine weitere Spalte an den Anfang der Tabelle einfügen.
                Unter Extras auto_increment auswählen und den Primärschlüssel setzen.
                Die CSV-Datei muß dann natürlich auch am Anfang jeder Zeile ein (leeres) Feld bekommen. Das sieht dann so aus:

                ;9;10;1955;13;41;3;23;12;16
                ;16;10;1955;12;32;30;49;3;18
                ;23;10;1955;34;12;14;24;36;23
                ;30;10;1955;30;13;36;44;23;4
                ;6;11;1955;31;44;6;49;5;39
                ;13;11;1955;29;44;6;37;22;18
                ;20;11;1955;27;44;8;16;12;4
                ;27;11;1955;26;37;9;44;46;24
                ;4;12;1955;47;20;31;26;21;5
                ;11;12;1955;10;26;37;8;31;22

                Ich hab' jetzt hier Semikolon als Trennzeichen benutzt. Jetzt die Tabelle leeren (oder leeren, bevor du die Spalte einfügst),
                und die CSV-Datei erneut importieren.

                Gruß
                Günni

                Kommentar


                • #23
                  Du brauchst keine Tabelle leeren, wenn Du eine Spalte hinzufügst, Du brauchst nur die Struktur wie beschrieben durch Hinzufügen einer Spalte mit AUTO INCREMENT ändern.

                  Kommentar


                  • #24
                    Zitat von Melewo Beitrag anzeigen
                    Du brauchst keine Tabelle leeren, wenn Du eine Spalte hinzufügst, Du brauchst nur die Struktur wie beschrieben durch Hinzufügen einer Spalte mit AUTO INCREMENT ändern.
                    Hi Melewo,

                    tatsächlich, ein Leeren ist nicht erforderlich. Aber nur AUTO INCREMENT

                    reicht trotzdem nicht. Auch muß der Primärschlüssel auf die Spalte

                    gesetzt werden, sonst gibts eine Fehlermeldung.

                    Gruß
                    Günni

                    Kommentar


                    • #25
                      Zitat von Guenni61 Beitrag anzeigen
                      Auch muß der Primärschlüssel auf die Spalte

                      gesetzt werden, sonst gibts eine Fehlermeldung.
                      Ändert der Eintrag bei mir von allein, wenn vorher nichts anderes ausgewählt oder festgelegt wurde.

                      Code:
                      CREATE TABLE IF NOT EXISTS `testname` (
                        `id` int(11) NOT NULL AUTO_INCREMENT,
                        `tag` int(2) DEFAULT NULL,
                        `monat` int(2) DEFAULT NULL,
                        `jahr`  int(4) DEFAULT NULL,
                        `zahl1` int(2) DEFAULT NULL,
                        `zahl2` int(2) DEFAULT NULL,
                        `zahl3` int(2) DEFAULT NULL,
                        `zahl4` int(2) DEFAULT NULL,
                        `zahl5` int(2) DEFAULT NULL,
                        `zahl6` int(2) DEFAULT NULL,
                        PRIMARY KEY (`id`)
                      ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7;

                      Kommentar


                      • #26
                        Kann mir jemand bei der Datenbank Abfrage helfen.
                        Hab mal was versucht geht aber nicht.

                        PHP-Code:
                        // Datenbankverbindung steht 

                           
                        $zahl1 $_POST["zahl1"];
                           
                        $zahl2 $_POST["zahl2"];
                           
                        $zahl3 $_POST["zahl3"];
                           
                        $zahl4 $_POST["zahl4"];
                           
                        $zahl5 $_POST["zahl5"];
                           
                        $zahl6 $_POST["zahl6"];

                        // Hier müßte die Abfrage stehen

                           
                        $abfrage "SELECT id
                           FROM lotto
                           WHERE @wert IN (zahl1, zahl2, zahl3, zahl4, zahl5, zahl6)
                           
                        $ergebnis = mysql_query($abfrage);
                           
                        $row = mysql_fetch_object($ergebnis); 
                        Kann mir jemand Helfen

                        Kommentar


                        • #27
                          Offenbar fehlen dir überhaupt noch die Grundlagen dafür. Du solltest erstmal ein Tutorial dazu vollständig durcharbeiten.

                          Kommentar


                          • #28
                            ENGINE=MyISAM

                            Ich würde statt zu MyISAM eher generell zu InnoDB tendieren...


                            Und noch was:

                            mysql_query und mysql_fetch_object das sind veraltete Funktionen. Die gelten seit dem neuesten PHP Release sogar als deprecated (die Abwährtskompatibilität ist nicht mehr gegeben bei ab jetzt folgenden Releases).
                            Stattdessen verwenden wir jetzt mysqli oder pdo...
                            Zuletzt geändert von jschultz; 14.04.2013, 21:52.

                            Kommentar


                            • #29
                              Es geht um Lottozahlen.
                              Es werden über ein Formular 6 Zahlen eingegeben.
                              Dann soll mit SQL abgefragt werden, ob die 6 Zahlen schon mal gezogen wurden , also in der Datenbank vorkommen und die ID Nummer wiedergeben. Die Reihenfoge der gezogenen Zahlen soll dabei keine Rolle spielen.


                              So sieht die Datenbank aus.


                              id,tag,monat,jahr,zahl1,zahl2,zahl3,zahl4,zahl5,zahl6
                              1,9,10,1955,13,41,3,23,12,16
                              2,16,10,1955,12,32,30,49,3,18
                              3,23,10,1955,34,12,14,24,36,23
                              4,30,10,1955,30,13,36,44,23,4
                              5,6,11,1955,31,44,6,49,5,39
                              6,13,11,1955,29,44,6,37,22,18
                              7,20,11,1955,27,44,8,16,12,4
                              8,27,11,1955,26,37,9,44,46,24
                              9,4,12,1955,47,20,31,26,21,5
                              10,11,12,1955,10,26,37,8,31,22
                              11,18,12,1955,26,8,42,39,36,14
                              12,26,12,1955,34,38,42,39,9,5


                              Kommentar


                              • #30
                                Ich verstehe die Frage nicht. Willst du einen Auftrag ausschreiben?

                                Kommentar

                                Lädt...
                                X