【问题标题】:In php, I need a while statement to complete before running a second while statement在 php 中,我需要在运行第二个 while 语句之前完成一个 while 语句
【发布时间】:2015-02-28 16:25:29
【问题描述】:

在 php 中,我需要 while 1 在运行 while 2 之前完成。while 1 基于表 1 创建一个数组。while 2 根据 while 1 中不在数组中的内容从表 2 中删除数据。

我的问题是 while 2 在 while 1 中创建的数组完成之前运行。我可以通过使用时间延迟来做到这一点,但这并不能保证数组是完整的,而且它还需要一个否则不必要的延迟。

我想我需要在 javascript 中做一些类似间隔的事情,我想我可以做到。但是,要使其正常工作,我需要一些标志来指示 while 1 已完成。基本上,我的问题似乎是我需要这个标志,但我不知道如何做一个只有当 1 完成时才为真的标志。

这是我正在处理的代码:

$data01 = mysql_query("SELECT * FROM crxcrops")or 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")or 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());

    }

}

【问题讨论】:

  • 请提供您编写的代码并说明您想用该代码做什么。
  • 嗯,PHP 是从上到下运行的,所以如果你有两个循环,第二个循环在第一个循环完成之前不会运行。
  • 这毫无意义,因为@JimL 得到了,PHP 本质上是阻塞的,即。在您的第一个循环完成之前,您的第二个循环不会运行...
  • 我现在已将代码添加到我的问题中。

标签: php while-loop delay wait intervals


【解决方案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;
}



}

【讨论】:

    猜你喜欢
    • 2017-06-18
    • 2016-04-12
    • 1970-01-01
    • 2021-10-06
    • 2017-11-12
    • 1970-01-01
    • 2012-10-09
    • 2021-03-19
    • 1970-01-01
    相关资源
    最近更新 更多