2014-04-08 60 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?'); 
}