0

ここにこのコードがあり、行の前にコンマがあるとデータをインポートしません。その列の空の値を意味しますが、私のコードはそれを認識しないため、データをまったくインポートしません。どうすれば修正できますか?前もって感謝します!

    <?php
include "config.php";

if ($_FILES[csv][size] > 0) { 

    $file = $_FILES[csv][tmp_name]; 
    $handle = fopen($file,"r"); 

    do { 
        if ($data[0]) { 
            mysql_query("INSERT INTO norse5_proov (osakond, soetusaasta, it_number, tooteruhm, mudeli_nimetus, sn, riigivara_nr, inventaari_nr, maja, ruum, vastutaja, markus, kasutajanimi) VALUES 
                ( 
                    '".addslashes($data[0])."', 
                    '".addslashes($data[1])."',
                    '".addslashes($data[2])."',
                    '".addslashes($data[3])."',
                    '".addslashes($data[4])."',
                    '".addslashes($data[5])."',
                    '".addslashes($data[6])."',
                    '".addslashes($data[7])."',
                    '".addslashes($data[8])."',
                    '".addslashes($data[9])."',
                    '".addslashes($data[10])."',
                    '".addslashes($data[11])."',
                    '".addslashes($_SESSION['user'])."'
                ) 
            ") or die(mysql_error()); 
        } 
    } while ($data = fgetcsv($handle,1000,",","'")); 

    header('Location:insert.php?success=1'); die; 

} 

?> 
4

2 に答える 2

0

変更する必要があります

if ($data[0]) { 

 if (!empty($data)) {

基本的に、現時点で行っていることは、最初の列にデータがあるかどうかを確認することであり、そうでない場合は行を無視し、提案されたものに変更すると、行全体にデータがあるかどうかを確認し、ある場合はインポートし、そうでない場合はスキップします。

于 2013-04-05T09:23:18.477 に答える
0

最初に状態を確認する必要がある場合は do while ループを使用しないでください。代わりに通常の while ループを使用してください。そうすれば、データをまったくチェックする必要はありません!

while ($data = fgetcsv($handle,1000,",","'")) 
{  
    mysql_query("INSERT INTO norse5_proov (osakond, soetusaasta, it_number, tooteruhm, mudeli_nimetus, sn, riigivara_nr, inventaari_nr, maja, ruum, vastutaja, markus, kasutajanimi) VALUES 
      ( 
      '".addslashes($data[0])."', 
      '".addslashes($data[1])."',
      '".addslashes($data[2])."',
      '".addslashes($data[3])."',
      '".addslashes($data[4])."',
      '".addslashes($data[5])."',
      '".addslashes($data[6])."',
      '".addslashes($data[7])."',
      '".addslashes($data[8])."',
      '".addslashes($data[9])."',
      '".addslashes($data[10])."',
      '".addslashes($data[11])."',
      '".addslashes($_SESSION['user'])."'
      ) 
    ") or die(mysql_error()); 
} 
于 2013-04-05T10:58:46.153 に答える