好的,所以我有这个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关闭的问题...任何建议
答案 0 :(得分:1)
为什么不使用foreach?
foreach ($right['Step'] as $i => $val) {
// ...
}
此外,您只需一个查询即可获得相同的结果:
SELECT SUM(TotalPrice) AS TOT
FROM configure_system
WHERE EstimateID='".$_SESSION['ESTQUOTE']."'
GROUP BY StepID