• 締切済み

mysqlでフィールド毎にレイアウトを変える方法

こんにちは。 最近仕事でmysqlを使い始め、データベースの操作自体はなんとかなっているのですが、phpのチェックボックスでデータベースから検索し、一覧として表示する際、カテゴリ毎に分けて表示したいと考えているのですが、うまいやり方がわかりません。 こういう感じです。 ケーキ(大カテゴリ)   チョコ(中カテゴリ)     商品1     商品2     商品3   ミルク(中カテゴリ)     商品4     商品5     商品6 アイス(大カテゴリ)   チョコ(中カテゴリ)     商品7     商品8     商品9   ミルク(中カテゴリ)     商品10     商品11     商品12 この際、それぞれの商品には大カテゴリ、中カテゴリが設定されています。 また、検索の仕方によっては、いきなり2つめの大カテゴリから始まることもあります(ケーキカテゴリが1件もヒットしない)。 mysql_fetch_assocを使って呼び出そうと思うのですが、その中でさらに条件で分けて書く方法がありましたら教えていただきたいです。 自分でも状況があまり分かっていないので、何か情報が足りないと教えていただければ追記いたします。 よろしくお願いします。

みんなの回答

  • pa_cotta
  • ベストアンサー率43% (25/58)
回答No.1

スクリプト側でやってもいいですし、SQLでやりたいのであればgroup byを使うことになるでしょうか。 テーブル構造が提示されていないのでそれ以上のことは何も言えません。

ssstreet
質問者

補足

回答ありがとうございます。 フィールドは、name(商品名)、category(ケーキ、アイス etc)、category2(チョコ、ミルク etc)の3つが主なフィールドで、、group byでソートしてに呼び出した後に、以下のhtmlのようにそれぞれのフィールドの値によってレイアウトを振り分けたいのです。 ケーキ&&チョコ、ケーキ&&ミルク、アイス&&チョコ、アイス&&ミルクのそれぞれの数をカウントしてループさせようとも思ったんですが、1つ1つ数えていくのはあまりにも効率が悪いと思ったので、いい方法はないかと思っている状況です。 <div class="big"> <h2>ケーキ(大カテゴリ)</h2> <div class="middle"> <h3>チョコ(中カテゴリ)</h3> <ul> <li>商品1</li> <li>商品2</li> <li>商品3</li> </ul> </div><!-- middle end --> <div class="middle"> <h3>ミルク(中カテゴリ)</h3> <ul> <li>商品4</li> <li>商品5</li> <li>商品6</li> </ul> </div><!-- middle end --> </div><!-- big end --> <div class="big"> <h2>アイス(大カテゴリ)</h2> <div class="middle"> <h3>チョコ(中カテゴリ)</h3> <ul> <li>商品7</li> <li>商品8</li> <li>商品9</li> </ul> </div><!-- middle end --> <div class="middle"> <h3>ミルク(中カテゴリ)</h3> <ul> <li>商品10</li> <li>商品11</li> <li>商品12</li> </ul> </div><!-- middle end --> </div><!-- big end -->

関連するQ&A