2011-08-04 20 views
0

csvファイルには、特定の月の詳細が表示されていない場合は新しい値が挿入され、特定の月の詳細が表示されている場合は、 csvファイルをアップロードして既にテーブルに存在しています。csvファイルのアップロード中に問題が発生しました

csvファイルの最後の行が、テーブルpayslipの列全体で繰り返されています。私は質問や何かに間違いがあることを知っています。しかし、私は何が間違っているか把握できませんでした。誰も私がこの問題を解決するのを助けてくれますか?

<?php 
require_once '../config.php'; 

if(isset($_POST['upload'])) 
{ 
$fname = $_FILES['sel_file']['name']; 
$month = $_POST['month']; 
$chk_file = explode(".",$fname); 

if(strtolower($chk_file[1]) == 'csv') 
{ 
//$sel=mysql_query("select * from employee where month='$month'"); 
//$del=mysql_query("delete from employee where month='$month'"); 
$query1 = mysql_query("SELECT * FROM payslips where month='$month'"); 
$pay_num_rows = mysql_num_rows($query1); 
    $filename = $_FILES['sel_file']['tmp_name']; 
    $handle = fopen($filename,"r"); 
    fgetcsv($handle,1000,","); 
    if($pay_num_rows > 1) 
    { 
    while(($data = fgetcsv($handle,1000,",")) != false) 
    { 
    $upd = "UPDATE payslips SET month='$data[9]',tot_work_days='$data[10]',lop_days='$data[11]',arrear_amt='$data[12]',leave_encash='$data[13]' where month='$month'"; 
    mysql_query($upd) or die(mysql_error()); 
    } 
    fclose($handle); 
    echo "Successfully Imported"; 
} 
    if($pay_num_rows == 0) 
{ 
while(($data = fgetcsv($handle,1000,",")) != false) 
    { 
    $sql = "INSERT into payslips(employee_code,employee_name,employee_address,emp_dateofjoin,emp_designation,emp_hq,pf_num,esic_num,emp_state,month,tot_work_days,lop_days,arrear_amt,leave_encash) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$month','$data[10]','$data[11]','$data[12]','$data[13]')"; 

    //$upd = "UPDATE employee SET month='$data[9]',tot_work_days='$data[10]',lop_days='$data[11]',arrear_amt='$data[12]',leave_encash='$data[13]' where month='$month'"; 
    mysql_query($sql) or die(mysql_error()); 
    } 
    fclose($handle); 
    echo "Successfully Imported"; 

} 
else 
{ 
    echo "Invalid File"; 
} 
} 
} 

?> 
+0

csvファイルの最後の行に入力されたデータは、その上位行に繰り返されています。これは私が上記のコードで見つけた正確なバグです。誰が間違っているのか把握するのを助けてくれますか? – Sunil

+0

私はポイントを取得していません.. CSVファイルの最後のレコードがdbで数回コピーされたことを意味しましたか? – anasanjaria

答えて

0

PrseCSVをアップロードしたcsvファイルから取得する方がよいでしょう。

+0

ええ、私は使用していたかもしれませんが、今は遅すぎます。アプリケーションを今のところ正常に動作させるには、このバグを修正するだけです。だから私はそのバグを見つけるのを助ける人が必要です。 – Sunil

関連する問題