【发布时间】: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