2011-10-26 12 views
1

私はcsvファイルをアップロードする簡単なスクリプトを持っています。 しかし、ヘッダを指定してデータを処理したいのですが?姓、姓、住所 、今、私のcsvファイルは次のとおりです:ヘッダに基づいてmysqlにcsvデータを挿入します

Address,FirstName,LastName 
myadd,myfname,mylname 

でも、それはテーブルの列と同じで手配していないヘッダに応じてmysqlのに正しくデータを挿入する方法このような私のテーブルには3列を持っているかのように 名?

スクリプトを使用している場合、ヘッダーも挿入されていても、myadd、myfname、およびmylnameをFirstName、LastName、およびAddressに挿入するだけです。あなたがスクリプトを持っていると言う

if (isset($_POST['upload'])) { 

if (is_uploaded_file($_FILES['filename']['tmp_name'])) { 
    echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>"; 
    echo "<p>contents:</p>"; 
    readfile($_FILES['filename']['tmp_name']); 
} 


$handle = fopen($_FILES['filename']['tmp_name'], "r"); 

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $import="INSERT into CSVtest($column1,$column2,$column3,$column4,$column5) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')"; 

    mysql_query($import) or die(mysql_error()); 
} 

fclose($handle); 

Echo "Done"; 

}

+0

現在のスクリプトを投稿できますか? –

+0

@エリックありがとうエリック、それは今そこにある。 –

+0

このリンクは、fgetcsvを使用しているため、探しているものかもしれません。 http://stackoverflow.com/questions/4409911/how-to-make-the-header-row-be-skipped-in-my-while -loop-using-fgetcsv –

答えて

1

:「私は私のスクリプトを使用している場合、それだけでも、ヘッダが同様に挿入されます、のFirstName、LastNameのと住所にmyadd、myfnameとmylnameを挿入します。 "

あなたのスクリプトがこれを行うためにSQLを生成しているとします。つまり、INSERT INTO tablename VALUES(v1、v2、v3)と言っています。

このようにする代わりに、名前付きの挿入を行います。 INSERT INTOユーザー(f1、f2、f3)VALUES( 'v1'、 'v2'、 'v3');

つまり、sqlを生成するスクリプトでフィールド名を指定します。

関連する問題