Eintrag in Datenbank

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

  • Eintrag in Datenbank

    Hallo erstmal alle zusammen.

    Habe ein Problem beim Daten eintragen in meine Datenbank.
    Die Daten werden aus einer CSV-Datei ausgelesen und in die Datenbank eingetragen, es werden aber nur 251 Zeilen eingetragen, vorhanden sind aber über 1000 Zeilen.

    Quelltext zum auslesen der CSV und zum eintragen in DB
    PHP-Code:
    <?
    include ("database01.php");

    $dateiname="sort1WR2.csv";
    $datei=fopen($dateiname,"r");
    $daten=fread($datei,filesize($dateiname));
    fclose($datei);

    $datensaetze=explode("\n",$daten);
    $db = ("triblea");
    $anzahl = count($datensaetze) -1;

    for($i=1; $i<$anzahl; $i++)
      {
        $datenfeld[$i]=explode(";",$datensaetze[$i]);
        
       $sql = "INSERT INTO reifen_winter (     
       `id_winter`,`breite`,`quer`,`durch`,`trag`,`sp`,_
       `hersteller`,`typ`,`preis`,`artikelNr`,`bild_ID`) 
        VALUES  ('','".$datenfeld[$i][1]."','".$datenfeld[$i][2]."',
       '".$datenfeld[$i][3]."','".$datenfeld[$i][4]."','".$datenfeld[$i][5]."',
       '".$datenfeld[$i][6]."','".$datenfeld[$i][7]."','".$datenfeld[$i][8]."',
       '".$datenfeld[$i][9]."','".$datenfeld[$i][10]."')";

        if ($res=send_sql($db,$sql))
                {
                }
    // mysql_close();

        echo $sql;
       }


    echo "<b><center><br><br><br>Datei wurde mit $i Datens&auml;tzen importiert<br><br></b>";

    ?>
    Quelltext zum Zugriff auf DB
    PHP-Code:
    #für sql statements
         
    function send_sql($db$sql)
         {
             if (! 
    $res=mysql_db_query($db$sql))
             {
                 echo 
    "Fehler beim Zugriff auf die Datenbank.<br />";
                exit;
    //zum verlassen der datenbank
             
    }
             return 
    $res;
         } 
    kann den Fehler nich finden Danke im vorraus Bernadine

  • #2
    schuß ins blaue:

    id_winter ist vom Typ TINYINT?

    Kommentar


    • #3
      nee int(20) und AutoWert;
      Zuletzt geändert von Bernadine; 23.02.2005, 14:46.

      Kommentar


      • #4
        Hm...
        - schon mal $anzahl per echo ausgegeben?
        - wie sieht die Tabellenstruktur aus?
        - wozu $datenfeld[$i]=explode(";",$datensaetze[$i]); und nicht
        $datenfeld=explode(";",$datensaetze[$i]);

        Kommentar


        • #5
          zu punkt:

          1: echo $anzahl gibt mir den genauen Wert 1499
          2: die Tabellenstruktur

          id_winter/ int(20) auto_increment
          breite/ int(20)
          quer / int(20)
          durch / int(20)
          trag / int(20)
          sp / char(2)
          hersteller/ varchar(255)
          typ / varchar(255)
          preis/ decimal(9,2)
          artikelNr / int(50)
          bild_ID/ int(20)

          3:
          PHP-Code:
          $datenfeld[$i]=explode(";",$datensaetze[$i]); und nicht
          $datenfeld
          =explode(";",$datensaetze[$i]); 
          habe das grade auspropiert dann trägt er mir zwar die 1499 Datensätze ein aber mit jeder menge müll.

          vielleicht hast du ja noch ne Idee

          Bis denne Bernadine

          Kommentar


          • #6
            Original geschrieben von Bernadine

            3:
            PHP-Code:
            $datenfeld[$i]=explode(";",$datensaetze[$i]); und nicht
            $datenfeld
            =explode(";",$datensaetze[$i]); 
            habe das grade auspropiert dann trägt er mir zwar die 1499 Datensätze ein aber mit jeder menge müll.
            wieso Müll hast du denn die Zeile:
            PHP-Code:
            $sql "INSERT INTO reifen_winter (     
               `id_winter`,`breite`,`quer`,`durch`,`trag`,`sp`,_
               `hersteller`,`typ`,`preis`,`artikelNr`,`bild_ID`) 
                VALUES  ('','"
            .$datenfeld[$i][1]."','".$datenfeld[$i][2]."',
               '"
            .$datenfeld[$i][3]."','".$datenfeld[$i][4]."','".$datenfeld[$i][5]."',
               '"
            .$datenfeld[$i][6]."','".$datenfeld[$i][7]."','".$datenfeld[$i][8]."',
               '"
            .$datenfeld[$i][9]."','".$datenfeld[$i][10]."')"
            auch entsprechend geändert?

            Kommentar


            • #7
              Danke asp2php daran hatte ich nicht gedacht

              nähere mich schon meinen 1499 Datensätzen im moment siehts so aus
              PHP-Code:
              <?

              $dateiname="sort1WR2.csv";
              $datei=fopen($dateiname,"r");
              $daten=fread($datei,filesize($dateiname));
              fclose($datei);

              mysql_connect("localhost","root","");
              mysql_select_db("triblea");



              $datensaetze=explode("\n",$daten);

              $anzahl = sizeof($datensaetze) ;
              //echo $anzahl;
              for($i=0; $i<$anzahl; $i++)
                {

                  $datenfeld=explode(";",$datensaetze[$i]);
                   $eintrag = "INSERT INTO reifen_winter (breite,quer,durch,trag,sp,hersteller,typ,preis,artikelNr,bild_ID) VALUES ('".$datenfeld[1]."','".$datenfeld[2]."','".$datenfeld[3]."','".$datenfeld[4]."','".$datenfeld[5]."','".$datenfeld[6]."','".$datenfeld[7]."','".$datenfeld[8]."','".$datenfeld[9]."','".$datenfeld[10]."')";

                  $eingetragen = mysql_query($eintrag);
                  echo $eingetrag;
                  echo $i;
                 }


              echo "<b><center><br><br><br>Datei wurde mit $i Datens&auml;tzen importiert<br><br></b>";

              ?>

              Achso der "Müll" war nich auf deinen Tipp bezogen sondern auf das was er aus meiner DB gemacht hat.

              Danke für deine Hilfe vielleicht finde ich die letzten 3 Datensätze ja auch noch

              Bis denne Bernadine

              Kommentar

              Lädt...
              X