2010-11-30 84 views
1

好吧,所以我有这个page,当在firefox中查看正确的结果显示出来,但是当我看着它在铬或Safari浏览器它是关闭的。难道是因为我使用的是时髦的PHP循环,使得它掉在browsers..Here是我的代码帮助我的时髦的PHP循环

我生成左右array..seems就像一个黑客对我

$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浏览器和铬关闭的问题...任何建议

+0

@马特:你为什么两个阵列分开他们,做一些造型斑马愚蠢的问题?如果是的CSS有更好的办法做到这一点...... – RageZ 2010-11-30 03:49:14

+0

右侧的表看起来很好。这是桌子外面的图像,看起来很扭曲。 – 2010-11-30 03:49:48

回答

1

为什么不使用foreach而不是?

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

而且你可以得到相同的结果只有一个查询:

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