PHP while循环的数值 相加得出一个总和 同一个页面多个总和不冲突
//购物车页面<?$sql="select*from购物车";$query=mysql_query($sql,$conn);while($row=mysql_fetch_...
//购物车页面
<?
$sql = "select * from 购物车";
$query = mysql_query($sql,$conn);
while($row = mysql_fetch_array($query)){
$jiage = $row['单价'];
$shuliang = $row['数量'];
$he = $shuliang*$jiage;
$num = $num +$he;
}
echo '购物车总价:'.$num.'元';
//这里得到的$num的结果是对的
?>
//提交后的订单的页面
<?
//下面是有问题的代码,按照下面的写法,当订单数据库中只有一个订单 比如订单号都是100的 得出的$num的总价是正确的 假设是 500元
//但是如果有第二个订单,比如里面还有101订单号的(它的总价是100元),那循环出来的两条订单就是 100订单 总价500元 101订单总价600元
//问题就表现在了 第二个while循环后的 $he金额总和总是会加上前一个订单的金额。。。。。
//我知道是我写法有问题,请大佬指点 如何能得到 订单编号100:总价500元 订单编号101:总价100元
$sql = "select id,count(*) as num,订单号 from 订单表 group by 订单号 order by time desc";
$query = mysql_query($sql,$conn);
while($row = mysql_fetch_array($query)){
echo '订单编号:'.$row['订单号'];
$sql2 = "select * from 订单表 where 订单号 = $row[订单号] order by time desc";
$query2 = mysql_query($sql2,$conn);
while($row2 = mysql_fetch_array($query2)){
$jiage = $row2['单价'];
$shuliang = $row2['数量'];
$he = $shuliang*$jiage;
$num = $num +$he;
}
echo '总价:'.$num.'元';
}
?> 展开
<?
$sql = "select * from 购物车";
$query = mysql_query($sql,$conn);
while($row = mysql_fetch_array($query)){
$jiage = $row['单价'];
$shuliang = $row['数量'];
$he = $shuliang*$jiage;
$num = $num +$he;
}
echo '购物车总价:'.$num.'元';
//这里得到的$num的结果是对的
?>
//提交后的订单的页面
<?
//下面是有问题的代码,按照下面的写法,当订单数据库中只有一个订单 比如订单号都是100的 得出的$num的总价是正确的 假设是 500元
//但是如果有第二个订单,比如里面还有101订单号的(它的总价是100元),那循环出来的两条订单就是 100订单 总价500元 101订单总价600元
//问题就表现在了 第二个while循环后的 $he金额总和总是会加上前一个订单的金额。。。。。
//我知道是我写法有问题,请大佬指点 如何能得到 订单编号100:总价500元 订单编号101:总价100元
$sql = "select id,count(*) as num,订单号 from 订单表 group by 订单号 order by time desc";
$query = mysql_query($sql,$conn);
while($row = mysql_fetch_array($query)){
echo '订单编号:'.$row['订单号'];
$sql2 = "select * from 订单表 where 订单号 = $row[订单号] order by time desc";
$query2 = mysql_query($sql2,$conn);
while($row2 = mysql_fetch_array($query2)){
$jiage = $row2['单价'];
$shuliang = $row2['数量'];
$he = $shuliang*$jiage;
$num = $num +$he;
}
echo '总价:'.$num.'元';
}
?> 展开
2个回答
2019-04-05
展开全部
$num在循环前初始化为 $num=0
循环中,$num += $he; 就好了,你现在的问题是,每次循环num的值都被覆盖复制了,把变量提外面,内部叠加就好了
循环中,$num += $he; 就好了,你现在的问题是,每次循环num的值都被覆盖复制了,把变量提外面,内部叠加就好了
追问
真的很感谢你!按照您的方法解决了问题,是我太大意了 好人一生平安
追答
多看书,多敲代码哈,加油
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询