daten in mysql importieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • daten in mysql importieren

    Hallo,

    ich habe eine excel datei mit sehr vielen datensätzen die in mysql importiert werden sollen

    jeder datensatz steht in einer zeile in excel und die daten sind auch in der reihenfolge angeordnet wie die felder in der datenbank auch sind

    gibt es eine einfache Möglichkeit die Daten in die datenbank zu hauen?

  • #2
    Re: daten in mysql importieren

    http://dev.mysql.com/doc/refman/4.1/...ng-tables.html
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Sag excel speichern mit trennzeichen als textfile. Nimm als TRennzeichen das Semikolon.

      PHP-Code:
      $i 0;
      $file fopen("deinetabelle.csv""r");
          while (
      $buffer fgets($file4096)) {
          
      $tmp explode(';',$buffer);
          
      $sql "INSERT INTO tabelle (feld1,feld2,..HIER DEINE FELDER..,feldn) VALUES ";
          
      $sql .= "('".$tmp[0]."','".$tmp[1]."',....,'".$tmp[n]."')";
          
      mysql_query($sql);
          
      $i++;
      }
      fclose($file);
      echo 
      $i." Datensätze gespeichert!<br><br>Vielen Dank für das benutzen meines Programms ^^"
      Das ist der Code zu einer Lösung via PHP

      Kommentar


      • #4
        das müsste so doch richtig sein

        PHP-Code:
        <?

        $server="localhost";
        $user="root";
        $pass="";
        $datenbank="personal";

        $connect=mysql_connect($server,$user,$pass) or die ("Fehler: ".mysql_error());
        mysql_select_db($datenbank,$connect) or die ("Fehler: ".mysql_error);


        $i = 0;
        $file = fopen("testdaten.csv", "r");
            while ($buffer = fgets($file, 4096)) {
            $tmp = explode(';',$buffer);
            $sql = "INSERT INTO mitarbeiter (id, betrieb, funktion, kstelle, nachname, vorname, schule, azeit, stunden, fschein) VALUES ";
            $sql .= "('".$tmp[0]."','".$tmp[1]."',....,'".$tmp[n]."')";
            mysql_query($sql);
            $i++;
        }
        fclose($file);
        echo $i." Datensätze gespeichert!<br><br>Vielen Dank für das benutzen meines Programms ^^";


        ?>

        in der csv stehen die daten so:
        TTC;Koch;3002;name1;vorname1;;;8;nein
        TTC;Service - Azubi;3014;nachname2;vorname2;Dienstag;;8;ja


        der führt das aus aber die db ist leer

        Kommentar


        • #5
          PHP-Code:
          mysql_query($sql) or die(mysql_error()); 
          Slava
          bituniverse.com

          Kommentar


          • #6
            You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '...,")' at line 1


            sorry kenne mich damit nciht so aus

            Kommentar


            • #7
              PHP-Code:
              mysql_query($sql) or die(mysql_error().' Query: #'.htmlspecialchars($sql).'#'); 
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Ja du solltest in dem query die .... durch die ganzen variablen ersetzen also:

                PHP-Code:
                $sql .= "('".$tmp[0]."','".$tmp[1]."','".$tmp[2]."','".$tmp[3]."','".$tmp[4]."','".$tmp[5]."','".$tmp[6]."','".$tmp[7]."','".$tmp[8]."','".$tmp[9]."')"

                Kommentar


                • #9
                  You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '...,'')' at line 1 Query: #INSERT INTO mitarbeiter (id, betrieb, funktion, kstelle, nachname, vorname, schule, azeit, stunden, fschein) VALUES ('','TTC','Koch',....,'')#

                  kann das vielleicht daran liegen das in der tabelle das id fehlt drinnen ist und als auto_increment deklariert ist.
                  In der csv datei gibt es garkeinen wert für id, da der ja normal automatisch vergeben werden soll

                  Kommentar


                  • #10
                    Wieder mal ein wunderschönes Beispiel dafür, warum man den Leuten keinen (fast) fertigen Code vorsetzen sollte - weil der dann nämlich nur per copy&paste übernommen wird, ohne den geringsten Versuch, ihn auch zu verstehen ...
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Ich wusste ja nicht wieviele Spalten seine Tabelle hat, deshalb habe ich das mit den .... gemacht. Mein Fehler

                      Kommentar


                      • #12
                        also, verstanden hab ich den code.

                        hatte das auch schon mit den feldern, aber das hat nicht funktioniert. Aber weiß jetzt was falsch war

                        hatte vor dem = keinen punkt. Kann mir mal einer nur mal so zum verständnis sagen warum da nen punkt hin muss

                        Kommentar


                        • #13
                          Also hab noch nen kleinen Fehler

                          Und zwar muss ich ja am Anfang noch nen leeren Wert übergeben. Also hab ich das mal eingebaut

                          PHP-Code:
                          $sql .= "('','".$tmp[0]."','".$tmp[1]."','".$tmp[2]."','".$tmp[3]."','".$tmp[4]."','".$tmp[5]."','".$tmp[6]."','".$tmp[7]."','".$tmp[8]."','".$tmp[9]."')"

                          Bekomme jetzt folgenden Fehler:

                          Column count doesn't match value count at row 1 Query: #INSERT INTO mitarbeiter (id, betrieb, funktion, kstelle, nachname, vorname, schule, azeit, stunden, fschein) VALUES ('','TTC','Koch','3002','Aßmann','Christian','','','8','nein ','')#

                          Kommentar


                          • #14
                            Original geschrieben von zerberos
                            Bekomme jetzt folgenden Fehler:

                            Column count doesn't match value count
                            Spaltenanzahl passt nicht zur Werteanzahl.


                            (Verflixt, wieso muss manch solche trivialen Sachen eigentlich immer wieder für die Leute übersetzen ...?)
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              ja zähln sollte man können

                              hab die ganze zeit übersehen das der ja schon bei null anfängt

                              Kommentar

                              Lädt...
                              X