2014-04-08 97 views
1

我在一個有趣的問題分解成PHP循環。有一個foreach循環,這個循環將數據插入到MySQL表形成在Excel文件中的每行一個Excel文件。有時重複的數據是從excel中自然出來的。當這種重複數據試圖插入,我希望有一個彈出窗口詢問用戶,他是有意插入重複數據與否。如果是,PHP foreach循環中的其他代碼將執行,否則它將繼續下一個循環。請幫忙。繼續或使用javascript

+0

使用'continue' PHP運營商和'break' PHP的運營商?無論如何,你是使用AJAX還是什麼?我看不出你如何能做到一個彈出,而無需使用AJAX :) – briosheje

+0

這是問題所在。我想使用JavaScript繼續或打破繼續或打破我的PHP循環。 –

+0

然後你不應該(至少對我)做一個PHP循環,而是一個JavaScript循環。我個人建議你創建一個簡單的PHP腳本,將只得到excel文件的線路(通過該線路從JavaScript),並將其插入到數據庫中。如果發現該行存在,則將錯誤代碼返回給javascrip,以便在任何情況下提示用戶選擇是否要執行查詢。 – briosheje

回答

0

在PHP中,你需要處理Excel文件和暫停處理,當你看到一個重複的,也許存儲在會話文件的當前位置。你的代碼應該看這個標誌以彈出警告用戶。一旦用戶選擇是,您將位置移動到文件中並繼續處理。這可以通過AJAX實現,也可以不通過多次提交。

下面是一些僞代碼:

// is there a current saved pos? 
$pos = getSavedPos(); 
if ($pos) { 
    moveToPos($pos); 
} 

// process file 
while (!$endOfFile) { 
    $pos  = getCurrentPosOfFile(); 
    $data  = getRowData(); 
    $duplicate = isDuplicateData($data); 
    if ($duplicate) { 
     savePos($pos); 
     break; 
    } 
    else { 
     insertDataIntoDb($data); 
    } 
} 

// code elsewhere 
if ($duplicate) { 
    alert('This file contains duplicate information. Do you wish to continue?'); 
}