包含“for loop”的多个变量在我的代码中不起作用

时间:2010-05-12 09:29:21

标签: php for-loop

下面是我正在使用的代码和我正在迭代的最后一个循环不起作用...我认为我在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 个答案:

答案 0 :(得分:2)

你有太多;。而不是

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不是 - 分号用于分隔语句,而不是表达式。