В php мне нужно выполнить оператор while, прежде чем запускать второй оператор while

В php мне нужно выполнить «1» перед тем, как запускать «2». В то время как «1» создает массив на основе таблицы 1. «2» удаляет данные из таблицы 2, основываясь на том, чего нет в массиве из «1».

Моя проблема в том, что пока 2 выполняется до завершения создания массива в то время как 1. Я мог бы сделать это, используя задержку по времени, но это на самом деле не гарантирует, что массив завершен, плюс это также требует в противном случае ненужной задержки ,

Я думаю, что мне нужно сделать что-то вроде интервала в JavaScript, что, я думаю, я мог бы сделать. Однако, чтобы это работало, мне нужен флаг, указывающий, что пока 1 завершено. В принципе, моя проблема, кажется, в том, что мне нужен этот флаг, но я не знаю, как сделать флаг, который является истинным, только когда 1 завершен.

Вот код, над которым я работаю:

$ data01 = mysql_query («SELECT * FROM crxcrops») или die (mysql_error ());

while ($ r01 = mysql_fetch_array ($ data01)) {

    $cropsarray[] = $r01['cropsid_crp'];

}

// Здесь нужно сделать паузу, а не продолжать до тех пор, пока не будет завершен процесс. Эта пауза, кажется, не происходит. Намерение состоит в том, чтобы удалить строки из crxplugs (ниже), у которых есть cropid, не найденный в crxcrops (выше). Я не получаю последовательных результатов, что привело меня к мысли, что здесь нет паузы. Тем не менее, может быть, у меня есть ошибка ?? Может быть, я не могу запустить DELETE, пока еще в SELECT ??

$ 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

Решение

Я думаю, что все, что вам нужно, это использовать флаг, но попробуйте предоставить некоторый код, трудно написать что-то, в чем мы не уверены.

$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;
}}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector