在php中,我需要一个while语句才能在运行第二个while语句之前完成

时间:2015-02-28 16:25:29

标签: php while-loop delay wait intervals

在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());

    }

}

1 个答案:

答案 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;
}



}