Eintrag in Datenbank

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

    Comment


    • #3
      nee int(20) und AutoWert;
      Last edited by Bernadine; 23-02-2005, 14:46.

      Comment


      • #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]);

        Comment


        • #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

          Comment


          • #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?

            Comment


            • #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

              Comment

              Working...
              X