- ベストアンサー
データベースから年月日を抽出してドロップリストを表示する方法
- MySQLのデータベースから格納されたデータの年、月、日を抽出し、ドロップダウンリストとして表示する方法を知りたいです。
- 現在、年のみを抽出するドロップダウンリストを作成するコードを使用していますが、月や日のドロップダウンリストを作成する方法が分かりません。
- 他のウェブサイトで見つけたコードを試したもののエラーが発生しました。年、月、日のドロップダウンリストを作成する方法を教えていただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>なのでこの方法だとデータにない月、日のみ選択され検索される可能性もあります。 なるほど・・・ そういうことであれば、ajaxをつかって、年、月、日のどれかが選ばれた時点で 裏で問い合わせをして、ヒット件数を表示するというのがベターだと思います ajaxについては少し学習が必要ですが、慣れればさほど苦にはならないはずです
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
>年×月×日の組み合わせ9パターン 27パターンですね、失礼しました
- yambejp
- ベストアンサー率51% (3827/7415)
いまいち何がしたいのか見えてきません。 仮に 2010-10-05 2011-06-07 2012-11-03 のデータから、年,月,日でドロップダウンを作ったとして 年が2010、2011、2012 月が06、10、11 日が03、05、07 になります これでは年×月×日の組み合わせ9パターンのうち合致するのは3パターンしかなく しかもとびとびの月日が表示されあまり意味がないリストではありませんか? 数字入力なしに、年月日をいれさせるだけであれば 年だけ抽出して、月は1~12、日は1~31を選ばせるので十分です。 (もちろん小の月の末日は変ですがリストとはそういうもの)
補足
yambejpさん 回答ありがとうございます。 >これでは年×月×日の組み合わせ27パターンのうち合致するのは3パターンしかなく 仰る通りなのですが、年月日3つ全てリストから選ぶのを想定しているというより、年月日を「2009年」、「06月」、「05日」など単体でリストから選び検索するのを想定しています。 例えば年と日は選択せず「06月」だけ選択したら各年の6月のレコードのみが抽出される。 もちろん年月日全て選ぶこともあるでしょうが。 >年だけ抽出して、月は1~12、日は1~31を選ばせるので十分です。 なのでこの方法だとデータにない月、日のみ選択され検索される可能性もあります。 結果はもちろん何も抽出できないですが。こういう結果を出来るだけ避けたいです。 ただご指摘の通り、年月日三つ全て選ばれたら抽出されないことが多くありそうですが。 データは過去15年分で全部で1000レコード以上あります。月日だけでいうと365日中抜けているのは30日もないと思うので問題ないかと思ったのですが。 年月日だけ個別に抽出してドロップダウンリストを作成するのは難しいでしょうか? よろしくお願いします。
お礼
yambejpさん 回答ありがとうございます。 試行錯誤していたらMONTH(datedating)で無事出来ました。 ありがとうございました。