在php中,我需要在1之前完成,然后运行2.而1则根据表1创建一个数组。而2根据数据中的NOT来从表2中删除数据。
我的问题是,虽然2是在完成在1中创建的数组之前运行。我可以通过使用时间延迟来实现这一点,但这实际上并不能确保数组完整,而且还需要否则不必要的延迟。
我想我需要做一些像javascript的间隔,我想我可以做。然而,为了这个工作我需要一些标志,表明1完成。基本上,我的问题似乎是我需要这个标志,但我不知道如何做一个只有当1完成时才有效的标志。
以下是我正在处理的代码:
$ data01 = mysql_query(" SELECT * FROM crxcrops")或die(mysql_error());
while($ r01 = mysql_fetch_array($ data01)){
$cropsarray[] = $r01['cropsid_crp'];
}
//需要在此处暂停,直到$ cropsarray完成后才能继续。这种暂停似乎没有发生。目的是从crxplugs(下面)中删除在crxcrops中找不到cropid的行(上图)。我没有得到一致的结果,这让我相信这里没有停顿。但是,也许我有一些错误?也许我仍然在SELECT ??
中运行DELETE$ data00 = mysql_query(" SELECT * FROM crxplugs")或die(mysql_error());
while($ r00 = mysql_fetch_array($ data00)){
$key = array_search($r00['cropsidplg'], $cropsarray);
if($key==false){
mysql_query("DELETE FROM crxplugs WHERE cropsidplg=$ r00['cropsidplg']") or die(mysql_error());
}
}
答案 0 :(得分:1)
我认为您所需要的只是使用旗帜,但尝试提供一些代码,我们很难写出一些我们不确定的东西。
$flag=false;
//first while
while (1==1){
//do first job
/*
if (first job has finished)
$flag=true;
*/
//second while
if(flag){
while(/*second while statement*/){
//do second job
}
break;
}
}