dポイントプレゼントキャンペーン実施中!

MySQL 5.0.24a

氏名(myname)、組(kumi;1~6組がある)の2カラムからなる
マイテーブルがあるとして、次のように組ごとの登録人数を
集計するSELECT文をご教示下さい。

-----------
| 1 | 23名 |
------------
| 2 | 25名 |
------------
| 3 | 25名 |
------------
| 4 | 24名 |
------------
| 5 | 27名 |
------------
| 6 | 22名 |
------------

select count(*) as cnt1 where kumi = '1';
select count(*) as cnt2 where kumi = '2';
select count(*) as cnt3 where kumi = '3';
select count(*) as cnt4 where kumi = '4';
select count(*) as cnt5 where kumi = '5';
select count(*) as cnt6 where kumi = '6';

と、組(kumi)ごとのSQL文を6回発行しなければならないのでしょうか?

A 回答 (2件)

$rstをechoしちゃまずいでしょう(苦笑)


mysql_fetch_array()してください。

$rst = mysql_query($sql, $con);
$table="";
while($row=mysql_fetch_array($rst,MYSQL_ASSOC)){
$table.=<<<eof
<tr>
<td>{$row["kumi"]}組</td>
<td>{$row["cnt"]}名</td>
</tr>

eof;
}
$table="<table>{$table}</table>";
print $table;
    • good
    • 0
この回答へのお礼

yamabejpさん、早速のご教示ありがとうございました。

>$rstをechoしちゃまずいでしょう(苦笑)

お恥ずかしい話です、、、、

結果ですが、おかげさまでご教示の
while($row=mysql_fetch_array($rst,MYSQL_ASSOC)){
で解決できました。

大変助かりました。今後ともよろしくお願い致します。

お礼日時:2008/10/22 12:55

SELECT kumi,COUNT(*) AS CNT


FROM マイテーブル
GROUP BY kumi

でよいのでは?

この回答への補足

yamabejpさん、いつもお世話になります。

GROUP BY ってこういう使い方をするのですね(^^;大変参考になりましたm(_ _)m

phpMyAdminで試したら、見事にうまくいきました。。。

すみません、もう一歩ご教示下さい。

$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
$selectdb = mysql_select_db($DBNAME, $con);
$sql = "SELECT kumi,COUNT(*) AS CNT FROM マイテーブル GROUP BY kumi";
$rst = mysql_query($sql, $con);
echo $rst;

とやると、「Resource id #7」と返ってきますが、
<table>タグで結果を以下のように組むにはどのように記述したら
いいでしょうか。

-----------
| 1 | 23名 |
------------
| 2 | 25名 |
------------
| 3 | 25名 |
------------
| 4 | 24名 |
------------
| 5 | 27名 |
------------
| 6 | 22名 |
------------

何卒、よろしくお願い致します。

補足日時:2008/10/22 11:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!