下面是我正在使用的代码和我正在迭代的最后一个循环不起作用...我认为我在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.=",";
}
答案 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
不是 - 分号用于分隔语句,而不是表达式。