这段循环要怎么纠正?

php中文网
发布: 2016-06-20 12:47:05
原创
946人浏览过

$sa='select * from pql_spices_class order by id asc';      $ra=mysql_query($sa);	  $i=1;	  while($rsa=mysql_fetch_array($ra,mysql_assoc))      {		  //echo $rsa['classname'].",".$rsa['id']."<br />";		  $cid = $rsa['id'];		  $resf=mysql_query('select * from `pql_spices` where classid='.$cid.' order by id desc');          while($rsf=mysql_fetch_array($resf))           {             $prices+=$rsf['price'];          }		  echo $i."、".$rsa['classname'].":".$prices."元,";		  $i++;	  }
登录后复制


一个分类数据表pql_spices_class:有 分类一、分类二、分类三、……每个分类有对应的id
一个列表数据表pql_spices:有商品名称、价格、分类id、分类名称

要把pql_spices表里的价格按分类分别统计价格总价,但我这段代码的结果是:分类一统计对了,到了分类二确是分类一的总和加上分类二的总和,到了分类三确是分类二+加上分类三的总和,以此类推,每一次新分类的统计都会自动加上 上一次分类的统计总和,这就不对了。

请问代码要怎么写,才能准确得到各自分类的统计。不知道这样提问大家能不能明白我要问的意思。

3d文字循环滚动特效
3d文字循环滚动特效

一款3d文字循环滚动特效

3d文字循环滚动特效 27
查看详情 3d文字循环滚动特效


回复讨论(解决方案)

你的 $Prices 总是累加没有清0,自然就是现在的结果

再说一个分组求和的查询指令就可完成的事情,为何要用循环累加完成?

请问要怎么清零呢?

题外话:为什么论坛回复点引用没有反应?

$sa='select * from pql_spices_class order by id asc';

      $ra=mysql_query($sa);

  $i=1;

  while($rsa=mysql_fetch_array($ra,MYSQL_ASSOC))

      {
[color="red"]$Prices=0;//这里清零[/color]
  //echo $rsa['classname'].",".$rsa['id']."
";

  $cid = $rsa['id'];

  $resf=mysql_query('SELECT * FROM `pql_spices` where classid='.$cid.' ORDER BY id DESC');

          while($rsf=mysql_fetch_array($resf)) 

          {

             $Prices+=$rsf['Price'];

          }

  echo $i."、".$rsa['classname'].":".$Prices."元,";

  $i++;

  }

哦哦,今天又犯傻了。谢谢了,两位。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号