我正在爲我的表單郵件腳本編寫一個php腳本來發送所有發送到管道分隔的csv文件的電子郵件,然後通過php數組顯示csv文件。我需要允許用戶通過將列表中的最後一個或第22個字段的ID /發票號從該列表傳遞到刪除函數來刪除條目,如下所示,但它將刪除csv文件中的所有內容,不僅僅是這條線。這是我的代碼。我比較傳遞給invoicenumber的id,如果它匹配,它應該刪除該行並將其餘的放回,但它會刪除所有條目。PHP找到關鍵字並刪除具有匹配關鍵字的整個行
我做你的更正如下,但它仍然是消滅所有條目:
if ($_POST['action'] == "Delete")
{
$id = $_GET['id'];
$fptemp = fopen('data-temp.csv', "a+");
if (($handle = fopen($dataFile, "r")) !== FALSE)
{
while (($data= fgetcsv($handle)) !== FALSE)
{
if ($id != $data[22])
{
fputcsv($data);
}
}
fclose($handle);
fclose($fptemp);
unlink($dataFile);
rename('data-temp.csv',$dataFile);
}
}
所以我在我的CSV文件有以下條目
1346785585|Martha|Stewart|[email protected]|555-444-2222|578 dude rd|dude|TN|57660|usa|Do it Yourself Cooking Book||389|12|||360|12|Credit Card|www.something.com||98.143.4.228|6c67b98
1346785588|Karen|b|[email protected]|555-444-2222|578 dude rd|dude|TN|57660|usa|Do it Yourself WebSite||389|12|||360|12|Credit Card|www.something.com||98.143.4.228|464b4ec
我想找到發票號碼是所以假設我想找到「464b4ec」並刪除整個條目組成
1346785588|Karen|b|[email protected]|555-444-2222|578 dude rd|dude|TN|57660|usa|Do it Yourself WebSite||389|12|||360|12|Credit Card|www.something.com||98.143.4.228|464b4ec
我想單獨留下所有其他條目,我該怎麼做?
你爲什麼覆蓋你的循環內'$ id'? –