0

csv ファイルのアップロード後にキー ID を生成する際に問題が発生しました。ここに私のコードを示します。

if (isset($_FILES['userfile'])) {
    $csv_file = $_FILES['userfile']['tmp_name'];
    $csv_count = count(file($_FILES['userfile']['tmp_name']));
    if (!is_file($csv_file))
        exit('File not found.');
    if (($handle = fopen($csv_file, "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            for ($i = 1; $i <= $csv_count; $i++) {
                if (strlen($i) == 1) {
                    $i = "0000000" . $i;
                } elseif (strlen($i) == 2) {
                    $i = "000000" . $i;
                } elseif (strlen($i) == 3) {
                    $i = "00000" . $i;
                } elseif (strlen($i) == 4) {
                    $i = "0000" . $i;
                } elseif (strlen($i) == 5) {
                    $i = "000" . $i;
                } elseif (strlen($i) == 6) {
                    $i = "00" . $i;
                } elseif (strlen($i) == 7) {
                    $i = "0" . $i;
                } else {
                    $i = $i;
                }
                $key_id = "BRK" . substr(date('y'), -2) . "5" . $i;
                $qry = mysql_query("INSERT INTO table                    VALUES('$key_id','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data[16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]','$data[22]','$data[23]','$data[24]','$data[25]','$data[26]','$data[27]','$data[28]','$data[29]','$data[30]','$data[31]','$data[32]','$data[33]','$data[34]','$data[35]')");
            }
        }
        fclose($handle);
    }
}

クエリを挿入するとOKですが、結果はOKではありません。

結果のkey_idは問題ありません(必要に応じて生成されました)が、他のフィールドでは、すべての行に最初の行と同じデータがあります。

助けてください、事前に感謝します。

4

1 に答える 1

1

すべてのファイルをfile関数ごとに読み取り、最後にもう一度読み取り、ファイルの各行ごとに DB N レコードに挿入します。これを試して。

if (isset($_FILES['userfile'])) {
    $csv_file = $_FILES['userfile']['tmp_name'];
    if (!is_file($csv_file))
        exit('File not found.');
    if (($handle = fopen($csv_file, "r")) !== FALSE) {
       $i = 1;
       while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $key = str_pad($i, 8, '0', STR_PAD_LEFT);

            $key_id = "BRK" . substr(date('y'), -2) . "5" . $key;
            $qry = mysql_query("INSERT INTO table                    VALUES('$key_id','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data[16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]','$data[22]','$data[23]','$data[24]','$data[25]','$data[26]','$data[27]','$data[28]','$data[29]','$data[30]','$data[31]','$data[32]','$data[33]','$data[34]','$data[35]')");

            $i++;
        }
    }
    fclose($handle);
}

}

于 2013-11-13T06:46:27.843 に答える