レコードの数をカウントするので悩んでいるのですが、現在は
$sql .= "select count(*) from table";
$row = mysql_query($sql);
$row = mysql_fetch_row($row);
上記のような感じでカウントしています。
例えば10件レコードがあって、フィールドAと言う部分のデータ別にカウントしたい場合などは同のようにすればよいか教えてください。
例
全レコード数 10件
フィールドデータが1の物 1件
フィールドデータが2の物 4件
フィールドデータが3の物 5件
見たいな感じで表示したいのですが、こんな説明でわかりますかねぇ~。
お分かりになる人よろしくお願いします。
複数の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'";
といった感じです。
参考になれば幸いです。
GROUP BY句を使用すれば可能です。
"select count(*) from table GROUP BY A"
とすればグループ化して集計することが可能です。
$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はフィールド名ですよね。
テーブル名は書かなくてもよいのですか?
大変失礼しました。
$sql = "select A, count(*) as cnt from user_d group by A";
「A」の部分がフィールド名で、「user_d」とある部分がテーブル名です。
有難う御座います。
出来ました。
まだ、沢山分らない事があるので機会があったらまた宜しくお願いします。
どういう風に記述するのですか?
表示するところまで教えていただけるとありがたいです。
お願いします。