> 백엔드 개발 > PHP 튜토리얼 > 这段循环要怎么纠正?

这段循环要怎么纠正?

WBOY
풀어 주다: 2016-06-20 12:47:05
원래의
806명이 탐색했습니다.

$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表里的价格按分类分别统计价格总价,但我这段代码的结果是:分类一统计对了,到了分类二确是分类一的总和加上分类二的总和,到了分类三确是分类二+加上分类三的总和,以此类推,每一次新分类的统计都会自动加上 上一次分类的统计总和,这就不对了。

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


回复讨论(解决方案)

你的 $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++;

  }

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿