Несколько переменных, содержащих «для цикла» не работает в моем коде - PullRequest
0 голосов
/ 12 мая 2010

Ниже приведен код, с которым я работаю, и последний цикл, который я повторяю, не работает ... Я думаю, что я делаю что-то не так, используя несколько переменных в цикле for, также я знаю, что быть сделано

$updaterbk = "SELECT j1. *
FROM jos_audittrail j1
LEFT OUTER JOIN jos_audittrail j2 ON ( j1.trackid != j2.trackid
AND j1.field != j2.field
AND j1.changedone < j2.changedone )
WHERE j1.operation = 'UPDATE'
AND j2.id IS NULL
";

$selectupdrbk = mysql_query($updaterbk);
while($row1 = mysql_fetch_array($selectupdrbk))
{   
    $updrbk[] = $row1;
}

foreach($updrbk as $upfield)
{
if(!in_array($upfield['field'],$exist))
{
    $exist[] = $upfield['field'];
    $existval[] = $upfield['oldvalue'];

    //echo $updqueryrbk = "UPDATE `".$upfield['table_name']."` SET ";
}
}
print_r($existval);

for($i=0;$j=0;$i<count($exist);$j<count($existval);$i++;$j++)
{ 
$updqueryrbk.= $exist[$i]['field']."=".$existval[$j]['oldvalue'].",";
$updqueryrbk.="=";
$updqueryrbk.= $existval[$j]['oldvalue'];

$updqueryrbk.=",";

}

1 Ответ

2 голосов
/ 12 мая 2010

У вас слишком много ;. Вместо

for($i=0;$j=0;$i<count($exist);$j<count($existval);$i++;$j++)

вы должны написать

for ($i=0, $j=0; $i<count($exist) && $j<count($existval); $i++, $j++)

for принимает ровно три выражения в качестве аргументов в виде

for (initialization; condition; step)

foo, bar - это одно выражение, foo; bar - нет - точка с запятой используется для разделения операторов, а не выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...