- ベストアンサー
MySQLから列を取得し、リストボックスを作成したいです
MySQLから1つの列を、例えば10行あれば10個のデータ(文字列)を取得したいのですが、取り出し方が分かりません。データベースへの接続・切断の仕方やSQLの事は分かっています。 したい事は、該当するページから、はじめはリストボックスには、何も(option value="")入ってなくて、MySQLより文字列を取得、取得した文字列をoption valueに順番に10個表示させたいです。 どうかよろしくお願い致します。
- みんなの回答 (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)
>「<option value="<%=objRS("列名").value%>">」 の部分ですが、ASPで記述する方法を教えて下さい。 ASPでの記述のつもりですが…。 HTMLの中に<%= %>で response.write( ) と同じなのはご存知ですよね >1ページの中で常にリストボックスの内容を変えたいです。 自分がやるのであれば以下のどちらかで実装しますけど 1.イベント発生後該当ページをリロードしMySqlからデータ表示 2.あらかじめデータ抽出しておきJavaScriptによって内容切替 2は件数少ない時じゃないと厳しいと思います。
- ryk1234
- ベストアンサー率40% (46/113)
参照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>
補足
ご回答ありがとうございます。 「<option value="<%=objRS("列名").value%>">」 の部分ですが、ASPで記述する方法を教えて下さい。1ページの中で常にリストボックスの内容を変えたいです。(つまり再表示したいです) よろしくお願い致します。
- kamkamkam3
- ベストアンサー率42% (216/514)
ASPの方は、多分↓でいけるかと。 <SELECT NAME="HOGE"> <% Do Until objRS.EOF %> <option value="<%=objRS("列名").value%>"> <% '########次のレコードを参照########## objRS.MoveNext Loop %> </SELECT>
補足
ご回答ありがとうございます。 「<option value="<%=objRS("列名").value%>">」 の部分ですが、ASPで記述する方法を教えて下さい。1ページの中で常にリストボックスの内容を変えたいです。(つまり再表示したいです) よろしくお願い致します。
- kamkamkam3
- ベストアンサー率42% (216/514)
取り出したい列のなまえを、仮に支払先とします。テーブル名を仮に支払管理とします。 構文は SELECT DISTINCT 支払先 FROM 支払管理; DISTINCTは、重複データは、抽出してきません。 なお、aspの方は、全然分かりませんが、多分、質問者さんは分かっておられるのでしょう。がんばってください。
お礼
ありがとうございました
お礼
ありがとうございました。