• ベストアンサー

MYSQL、PHPを使ってのデータとそのデータ数表示について

よろしくお願いいたします。 このようなテーブルを組んでいます。  game        maker  マリオ      任天堂  カービィ     任天堂  FF        スクエニ   ドラクエ     スクエニ  ソニック     セガ このテーブルを使って、  任天堂(2)  スクエニ(3)  セガ(1) というように、メーカーが作ったゲームの数がカッコ内ででるように、makerを並べたいと思っています。 これはどのように組んだらよいのでしょうか? ちなみに、今はこのように組んで、(もちろんですが)失敗しています。。 ---------------------------------------------------------------- <?php mysql_connect('***','***','***'); mysql_select_db('***'); $sql = "select * from test"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo $row["maker"]; echo "<br />"; } } ?> ---------------------------------------------------------------- 初歩的な質問で大変恐縮ですが、よろしくお願いいたします!

質問者が選んだベストアンサー

  • ベストアンサー
noname#227352
noname#227352
回答No.2

深く見てみた訳でないのですが、多分makerフィールドしか出力していないからでは? 『count(*) as count』は、フィールド数をカウントした物をcountという一時的なフィールドに格納しましょうってことですので下記の様な出力になるかと echo $row["maker"] . "(" . $row["count"] . ")";

hasu23
質問者

お礼

ありがとうございました! 無事表示させることができました! ご丁寧にご回答いただきまして、本当にありがとうございました!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

SELECT maker,count(*) as count FROM テーブル GROUP BY maker で、データを取るのが一般的かと

hasu23
質問者

お礼

お早いご返答いただきましてありがとうございます!! グループでまとめることはできました! しかし  任天堂(2)  スクエニ(3)  セガ(1) のように、データ数を取得することができませんでした。 何かおかしな箇所があるのでしょうか?? 自分でも調べたのですが、よくわからなくて。。 ちなみに、このように書き直させていただきました。 ---------------------------------------------------------------- <?php mysql_connect('***','***','***'); mysql_select_db('***'); $sql = "SELECT maker,count(*)as count FROM test GROUP BY maker"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo $row["maker"]; echo "<br />"; } } ?> ---------------------------------------------------------------- です。 お時間ありましたらよろしくお願いいたします!

関連するQ&A

専門家に質問してみよう