• ベストアンサー

MySQLから列を取得し、リストボックスを作成したいです

MySQLから1つの列を、例えば10行あれば10個のデータ(文字列)を取得したいのですが、取り出し方が分かりません。データベースへの接続・切断の仕方やSQLの事は分かっています。 したい事は、該当するページから、はじめはリストボックスには、何も(option value="")入ってなくて、MySQLより文字列を取得、取得した文字列をoption valueに順番に10個表示させたいです。 どうかよろしくお願い致します。

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

  • ベストアンサー
回答No.5

基本的に、データをmySQLから取得したのをリストボックスに入れる処理は <% Do Until objRS.EOF %> <option value="<%=objRS("列名").value%>"> <% '########次のレコードを参照########## objRS.MoveNext Loop です。objRS(レコードセット)がEOF(エンドオブファイル)になるまで、option value=の値にobjRS("列名")のvalue(値)を入れながらループする。ということです。 objRS(レコードセット)には、MySQLからSELECT文で取り出した結果すべてが入っています。この場合ですと列名が全部入っています。 ですから、<option value="<%=objRS("列名").value%>">の一文は、<option value="取り出した列名">と同じです。<%= %>の中はaspで、指定したスクリプトを表示するという意味です。ここで指定しているのは、objRS("列名").valueです、 で、objRS.MoveNextでobjRS(レコードセット)の内部参照が次のレコードに移ります。 それをDo UntilのループでobjRS.EOFまでループさせます。objRS.EOFのEOFは終わりという印なので、objRSのデータが終わりの印にくるまでループするということです。 こんなこと分かっていますかね。。分かってたらすみません。もし分かっていないようなら、基礎的なことなので、学習した方が良いとおもいます。

その他の回答 (4)

  • ryk1234
  • ベストアンサー率40% (46/113)
回答No.4

>「<option value="<%=objRS("列名").value%>">」 の部分ですが、ASPで記述する方法を教えて下さい。 ASPでの記述のつもりですが…。 HTMLの中に<%= %>で response.write( ) と同じなのはご存知ですよね >1ページの中で常にリストボックスの内容を変えたいです。 自分がやるのであれば以下のどちらかで実装しますけど 1.イベント発生後該当ページをリロードしMySqlからデータ表示 2.あらかじめデータ抽出しておきJavaScriptによって内容切替 2は件数少ない時じゃないと厳しいと思います。

burbe
質問者

お礼

ありがとうございました。

  • ryk1234
  • ベストアンサー率40% (46/113)
回答No.3

参照URLをご確認下さい <SELECT> <% iMax = 10 '表示件数 iCount = 0 '表示件数カウンター set cn = Server.CreateObject ("ADODB.Connection") cn.Open "dsn=MySQL;uid=sak;pwd=" cn.CursorLocation = 3 set rs = cn.Execute("select * from Table_Name Orader By Table_ID ")  Do While Not rs.EOF AND iCount < iMax iCount = iCount + 1 %> <OPTION value="<%= rs("列名")%>"><%= rs("列名")%> <% rs.MoveNext loop rs.Close cn.Close %> </SELECT>

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_03.htm
burbe
質問者

補足

ご回答ありがとうございます。 「<option value="<%=objRS("列名").value%>">」 の部分ですが、ASPで記述する方法を教えて下さい。1ページの中で常にリストボックスの内容を変えたいです。(つまり再表示したいです) よろしくお願い致します。

回答No.2

ASPの方は、多分↓でいけるかと。 <SELECT NAME="HOGE"> <% Do Until objRS.EOF %> <option value="<%=objRS("列名").value%>"> <% '########次のレコードを参照########## objRS.MoveNext Loop %> </SELECT>

参考URL:
http://www5a.biglobe.ne.jp/~n_rieko/asp/16.htm
burbe
質問者

補足

ご回答ありがとうございます。 「<option value="<%=objRS("列名").value%>">」 の部分ですが、ASPで記述する方法を教えて下さい。1ページの中で常にリストボックスの内容を変えたいです。(つまり再表示したいです) よろしくお願い致します。

回答No.1

取り出したい列のなまえを、仮に支払先とします。テーブル名を仮に支払管理とします。 構文は SELECT DISTINCT 支払先 FROM 支払管理; DISTINCTは、重複データは、抽出してきません。 なお、aspの方は、全然分かりませんが、多分、質問者さんは分かっておられるのでしょう。がんばってください。

参考URL:
http://www.accessclub.jp/sql/18.html
burbe
質問者

お礼

ありがとうございました

関連するQ&A