このサイクルはどうすれば修正できるのでしょうか?
$sa='select * from pql_spices_class order by id asc';<br /> $ra=mysql_query($sa);<br /> $i=1;<br /> while($rsa=mysql_fetch_array($ra,MYSQL_ASSOC))<br /> {<br /> //echo $rsa['classname'].",".$rsa['id']."<br />";<br /> $cid = $rsa['id'];<br /> $resf=mysql_query('SELECT * FROM `pql_spices` where classid='.$cid.' ORDER BY id DESC');<br /> while($rsf=mysql_fetch_array($resf)) <br /> {<br /> $Prices+=$rsf['Price'];<br /> }<br /> echo $i."、".$rsa['classname'].":".$Prices."元,";<br /> $i++;<br /> }
分類データテーブル pql_spices_class: 分類 1、分類 2、分類 3、... があり、各分類に対応する ID があります
リスト データ テーブル pql_spices: 製品があります名前、価格、カテゴリ ID、カテゴリ名
pql_spices テーブルの価格はカテゴリごとに個別に計算される必要がありますが、コードの結果は次のようになります。カテゴリ 1 の統計は正しく、カテゴリ 2 は確かに正しいです。カテゴリ 1 はカテゴリ 2 の合計とカテゴリ 2 の合計、カテゴリ 3 はカテゴリ 2 とカテゴリ 3 の合計、というように、新しいカテゴリの統計の合計に自動的に追加されます。前のカテゴリ、これは間違っています。
各カテゴリの統計を正確に取得するためのコードの書き方を教えてください。この質問をして私の聞きたいことが理解できるかわかりません。
------解決策----------------------$Prices は常に累積されますか?当然、現在の結果は 0 です
グループ化された合計クエリ コマンドで達成できることについて話しましょう。なぜそれを完了するためにループ累積を使用する必要があるのでしょうか。
------ソリューションのアイデア----------------------$sa='select * from pql_spices_class 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."元,"; ;
}