帮助我的时髦PHP循环

时间:2010-11-30 03:45:32

标签: php loops foreach

好的,所以我有这个page,当在firefox中查看时,会显示正确的结果,但是当我在chrome或safari中查看它时,它就会消失。难道它是我正在使用的那个时髦的php循环,它在浏览器中关闭..这就是我的代码

我正在生成一个左右数组。看起来像是对我的黑客

    $left = array();
    $right = array();
$finaltot=0.00;
 for($i=0;$i<count($steps);$i++)
{               
$sql="SELECT *  FROM configure_system WHERE EstimateID='".$_SESSION['ESTQUOTE']."' AND StepID=".($i+1) ;
$expstep=ExecuteGetRows($sql);


if ($i % 2 == 0) {
      $sql="SELECT SUM(TotalPrice) AS TOT FROM configure_system WHERE EstimateID='".$_SESSION['ESTQUOTE']."' AND StepID=".($i+1);
      $tots=ExecuteGetRows($sql);
    $left["Step"][$i][]  = $steps[$i];
    $left["expstep"][$i][]  = $expstep;
    $left["final_total"][$i][] = $tots[0]['TOT'];
    $finaltot+=$tots[0]['TOT'];
  } else {    
   $sql="SELECT SUM(TotalPrice) AS TOT FROM configure_system WHERE EstimateID='".$_SESSION['ESTQUOTE']."' AND StepID=".($i+1);
   $tots=ExecuteGetRows($sql);
    $right["Step"][$i][]  = $steps[$i];
    $right["expstep"][$i][]  = $expstep;
    $left["final_total"][$i][] = $tots[0]['TOT'];
    $finaltot+=$tots[0]['TOT'];

 }

然后由于左数组只有0,2,4,6,8,10 右边有1,3,5,7,9,11

所以我的循环就像这样

<?php for($i=0;$i<count($left['Step']) * 2;$i++) { ?> 
      <?php $i++; ?>
<?php } ?>

<?php for($i=1;$i<count($right['Step'])* 2;$i++) { ?> 
      <?php $i++; ?>
<?php } ?>

因此,你可以看到代码有点偏,我认为可能是为什么safari和chrome关闭的问题...任何建议

1 个答案:

答案 0 :(得分:1)

为什么不使用foreach

foreach ($right['Step'] as $i => $val) {
     // ...
}

此外,您只需一个查询即可获得相同的结果:

  SELECT SUM(TotalPrice) AS TOT
    FROM configure_system
   WHERE EstimateID='".$_SESSION['ESTQUOTE']."'
GROUP BY StepID