2017-04-27 8 views
0

Ich habe diesen Code, aber es dauert nur die erste Zeile meiner CSV-Datei ..Ich suche bereits im Internet, aber keine mich verstehen, da ich sehr neu in PHP bin tut mir leid, wenn Diese Frage ist ein Duplikat.Importieren CSV in Datenbank nur eine Zeile

if(isset($_POST["Import"])){ 
echo $filename=$_FILES["file"]["tmp_name"]; 

if($_FILES["file"]["size"] > 0) 
{ 
    $file = fopen($filename, "r"); 
    while (($getData = fgetcsv($file, 10000, ",")) !== FALSE) 
    { 

     $sql = "INSERT INTO book (book_id,total_book,price,title,author,surname,genre,location) values 
     ('$getData[0]','$getData[1]','$getData[2]','$getData[3]','$getData[4]','$getData[5]','$getData[6]','$getData[7]')"; 
     $result = mysqli_query($con, $sql); 
     var_dump($sql);die; 
     // var_dump(mysqli_error_list($con)); 
     // exit(); 
     if(!isset($result)) 
     { 
      echo "<script type=\"text/javascript\"> 
         alert(\"Invalid File:Please Upload CSV File.\"); 
         window.location = \"bookList.php\" 
         </script>"; 
     } 
     else { 
      echo "<script type=\"text/javascript\"> 
        alert(\"CSV File has been successfully Imported.\"); 
        window.location = \"bookList.php\" 
       </script>"; 
     } 
    } 

    fclose($file); 
} 

}

+0

Sie haben 'var_dump ($ sql) hinzugefügt; sterben ; '& hat die Script-Tags in der while-Schleife hinzugefügt. Entferne diese. In der while-Schleife wird jede Zeile durchlaufen. Lassen Sie die while-Schleife vollständig, speichert sie alle Datensätze –

+0

var_dump ($ sql); Weil du Würfel hinzugefügt hast, ist der Code nach einmaligem Ausführen beendet. –

+0

sogar ich entferne das, es dauert immer noch nur die erste Zeile – rixxkenzou

Antwort

0

Sie können in meiner Art und Weise versuchen, habe ich diese Benutzer Teilnahme speichern in der Datenbank zu verarbeiten. hier mein Code unten gebe ich Upload zu Daten speichern in Server/db.

danach i verarbeiten diese CSV-Datei mit diesem Code:

function MakeID($id) { 

      $refine_id = ""; 
      if (strlen($id) == "1") { 
       $refine_id = "SUL00" . $id; 
      } elseif (strlen($id) == "2") { 
       $refine_id = "SUL0" . $id; 
      } elseif (strlen($id) == "3") { 
       $refine_id = "SUL" . $id; 
      } else { 
       $refine_id = "SUL".$id; 
      } 

      return $refine_id; 
     } 
//336668677 
//Read directory 
     $FileArray = scandir("Attendance"); 

     $i = 0; 
     $existsdate = array(); 



     foreach ($FileArray as $f) { 

      $filename = "Attendance/" . $f; 

      $extensiondebug=''; 
      if(!empty($f)) 
      { 
       $splitex=explode(".",$f); 
       $extensiondebug=$splitex[1]; 
      } 

      if ($extensiondebug == "csv") { 


       $row = 1; 

       if (($handle = fopen("Attendance/".$f, "r")) !== FALSE) { 

        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 

        $num = count($data); 

        $row++; 
        $terminal_id=1; 
        $emp_code=MakeID($data['1']); 



        $pd=split('/',$data[0]); 
        @$raw_date=$pd[2]."-".$pd[1]."-".$pd[0]; 
        $unixtime=strtotime($raw_date); 
        $date=date('Y-m-d',$unixtime); 
        //echo $date."<br>"; 
        if($data['1']!="ID" && $date!="1970-01-01") 
        { 

         if($data['6']!="00:00" && $data['6']!="0:00") 
         { 


          //echo $data['6']."<br>"; 


          //echo $date; 



          $time=date('g:i:s',strtotime($data['6'])); 

          //exit(); 


          $res = $con->existsByCondition("attendance_raw", " employee_id='$emp_code' AND date='$date' AND time='$time'"); 
          if ($res <= 0) { 
           $array = array(
            "machine_id" => $terminal_id, 
            "date" => $date, 
            "time" => $time, 
            "employee_id" => $emp_code, 
            "result" => "1" 
            ); 
           $con->insert("attendance_raw", $array); 
          } 
         } 

         if($data['7']!="00:00" && $data['7']!="0:00") 
         { 
          $time2=date('g:i:s',strtotime($data['7'])); 
          $res = $con->existsByCondition("attendance_raw", " employee_id='$emp_code' AND date='$date' AND time='$time2'"); 
          if ($res <= 0) { 
           $array = array(
            "machine_id" => $terminal_id, 
            "date" => $date, 
            "time" => $time2, 
            "employee_id" => $emp_code, 
            "result" => "1" 
            ); 
           $con->insert("attendance_raw", $array); 
          } 
         } 
        } 

        //echo "<br />\n"; 

       } 

       fclose($handle); 

      } 

        rename($filename, 'read/' . $filename); 
        echo "file moved to specified directory."; 
       } 

      } 

Ich hoffe, das Sie Ihre CSV-Datei Prozess abzuschließen helfen.

+0

Danke für den Code ..Ich versuche, Ihren Code zuerst zu verwenden – rixxkenzou

0

Ihnen alle für die Hilfe dankt ..ich bereits das Problem lösen, ist das Problem in meinem Code nur das Trennzeichen, die ich verwenden, habe ich einen falschen Begrenzer

Verwandte Themen