人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MYSQLとPHPでサイトを作っています。
レコードの数をカウントするので悩んでいるのですが、現在は

$sql .= "select count(*) from table";
$row = mysql_query($sql);
$row = mysql_fetch_row($row);

上記のような感じでカウントしています。

例えば10件レコードがあって、フィールドAと言う部分のデータ別にカウントしたい場合などは同のようにすればよいか教えてください。


全レコード数 10件
フィールドデータが1の物 1件
フィールドデータが2の物 4件
フィールドデータが3の物 5件

見たいな感じで表示したいのですが、こんな説明でわかりますかねぇ?。

お分かりになる人よろしくお願いします。

●質問者: black_kenchan
●カテゴリ:インターネット ウェブ制作
✍キーワード:MySQL PHP SELECT SQL カウント
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ●
●10ポイント

複数のSQLを準備し、何度か上記の処理(SQL発行、値取得、表示)を行えば良いです。

SQLのWHERE句で条件を指定し、その条件に合ったレコードの件数を取得します。

以下、SQL部分のみサンプルを書いておきます。

$sql = "select count(*) from table";
$sql = "select count(*) from table where field_A = '1'";
$sql = "select count(*) from table where field_A = '2'";

といった感じです。

参考になれば幸いです。


2 ● ota2244
●10ポイント

GROUP BY句を使用すれば可能です。

"select count(*) from table GROUP BY A"

とすればグループ化して集計することが可能です。

◎質問者からの返答

どういう風に記述するのですか?

表示するところまで教えていただけるとありがたいです。

お願いします。


3 ● kazz7
●10ポイント

select A, count(*) from table group by A;

で、どうでしょうか?

これで、フィールドAごとの件数が集計できます。


4 ● sera_yr
●10ポイント

$sql = "select A, count(*) as cnt from user_d group by A";

$res = mysql_query($sql);

while( $row = mysql_fetch_assoc( $res ) ) {

print $row['A'].":".$row['cnt']."
";

}


これでどうでしょうか

◎質問者からの返答

出来ませんでした。

$sql = "select A, count(*) as cnt from user_d group by A";

のAはフィールド名ですよね。

テーブル名は書かなくてもよいのですか?


5 ● sera_yr
●60ポイント

大変失礼しました。

$sql = "select A, count(*) as cnt from user_d group by A";

「A」の部分がフィールド名で、「user_d」とある部分がテーブル名です。

◎質問者からの返答

有難う御座います。

出来ました。

まだ、沢山分らない事があるので機会があったらまた宜しくお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ