- ベストアンサー
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 />"; } } ?> ---------------------------------------------------------------- 初歩的な質問で大変恐縮ですが、よろしくお願いいたします!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
深く見てみた訳でないのですが、多分makerフィールドしか出力していないからでは? 『count(*) as count』は、フィールド数をカウントした物をcountという一時的なフィールドに格納しましょうってことですので下記の様な出力になるかと echo $row["maker"] . "(" . $row["count"] . ")";
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
SELECT maker,count(*) as count FROM テーブル GROUP BY maker で、データを取るのが一般的かと
お礼
お早いご返答いただきましてありがとうございます!! グループでまとめることはできました! しかし 任天堂(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 />"; } } ?> ---------------------------------------------------------------- です。 お時間ありましたらよろしくお願いいたします!
お礼
ありがとうございました! 無事表示させることができました! ご丁寧にご回答いただきまして、本当にありがとうございました!