- - PR -
JSPとMySQLを使って
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-26 11:43
JSPからMySQlに保存させたいのですができません。JSPのテキストボックスからは保存させることができたのですが、JSPの選択リストから保存することができません。どうしてでしょうか?
Statement st = conn.createStatement(); String sql = "UPDATE hyouka SET " + " no = '" + no[f] + "', name = '" + name[f] + "'," + " syu1 ='" + request.getParameter("syu1") + "'," + " syu2 ='" + request.getParameter("syu2") + "'," + " syu3 ='" + request.getParameter("syu3") + "'," + " syu4 ='" + request.getParameter("syu4") + "'," + " syu5 ='" + request.getParameter("syu5") + "'," + " syu6 ='" + request.getParameter("syu6") + "'," + " syu7 ='" + request.getParameter("syu7") + "'," + " syu8 ='" + request.getParameter("syu8") + "'," + " syu9 ='" + request.getParameter("syu9") + "'," + " syu10 ='" + request.getParameter("syu10") + "'," + " syu11 ='" + request.getParameter("syu11") + "'," + " syu12 ='" + request.getParameter("syu12") + "'," + " syu13 ='" + request.getParameter("syu13") + "'," + " syu14 ='" + request.getParameter("syu14") + "'," + " syu15 ='" + request.getParameter("syu15") + "'," + " ten ='" + request.getParameter("ten") + "'," + " hyouka ='" + request.getParameter("hyouka") + "' WHERE ID =" +aa[f]; st=conn.createStatement(); st.executeUpdate(sql); } プログラムはこんな感じにしています。多分この部分がダメだとは思います。一応、参考書を見本に作っています。お気づきのところがありました是非返信を。 | ||||||||
|
投稿日時: 2004-05-26 12:40
これだけの情報では何もわかりませんよ。
例外が出てるならスタックトレースの内容を載せるとか、JSPをどう実装しているのかとか、String sqlの内容をコンソールに表示してみるとか、もうちょっと工夫をして投稿してみてはいかがでしょうか? | ||||||||
|
投稿日時: 2004-05-26 12:41
まず JSP と MySQL を切り分けて考えてみてはいかがでしょうか?レイヤが異なりますので。
・選択リストからの値の取得が行えない のか ・複数の String オブジェクトを渡す SQL の生成が行えない のか・・・。どちらがわかりませんか? | ||||||||
|
投稿日時: 2004-05-26 13:09
テキストボックスから値を取得してうまくいってて、 それをリストボックスに変更してエラーになったのなら、 まずするべきことは、リストボックスから、ちゃんと値が取得できたかどうか を確認することではないでしょうか。 しかし、それよりも、 動かなくなった原因が、SQL実行コードに関係があると、 どうして考えたのか、のほうが気になります。 [ メッセージ編集済み 編集者: Edosson 編集日時 2004-05-26 13:15 ] | ||||||||
|
投稿日時: 2004-05-26 15:02
多分、複数の String オブジェクトを渡す SQL の生成が行えない方だと思います。 プログラムの部分でいえば String[] aa = request.getParameterValues("c1"); String[] bb = request.getParameterValues("d1"); aa = bb; String[] no = request.getParameterValues("no"); String[] name = request.getParameterValues("name"); String[] syu1 = request.getParameterValues("syu1"); String[] syu2 = request.getParameterValues("syu2"); String[] syu3 = request.getParameterValues("syu3"); String[] syu4 = request.getParameterValues("syu4"); String[] syu5 = request.getParameterValues("syu5"); String[] syu6 = request.getParameterValues("syu6"); String[] syu7 = request.getParameterValues("syu7"); String[] syu8 = request.getParameterValues("syu8"); String[] syu9 = request.getParameterValues("syu9"); String[] syu10 = request.getParameterValues("syu10"); String[] syu11 = request.getParameterValues("syu11"); String[] syu12 = request.getParameterValues("syu12"); String[] syu13 = request.getParameterValues("syu13"); String[] syu14 = request.getParameterValues("syu14"); String[] syu15 = request.getParameterValues("syu15"); String[] ten = request.getParameterValues("ten"); String[] hyouka = request.getParameterValues("hyouka"); の部分だと思うのですが・・・ | ||||||||
|
投稿日時: 2004-05-26 16:04
まず処理を作る前にPOSTされてきているデータを確認しましたか?
それがRyoさんが想定しているものと異なっていれば当然動きませんよね? 下記はPOSTパラメータを列挙するサンプルですが まずどんなデータが送られているか確認して見てください。 java.util.Enumeration enum = request.getParameterNames(); String key = ""; while ( enum.hasMoreElements() ) { key = enum.nextElement().toString(); String values[] = request.getParameterValues(key); for ( int i=0;i<values.length;i++ ) { System.out.println(key + "[" + i + "] = " + values[i]); } } [ メッセージ編集済み 編集者: いっきゅう 編集日時 2004-05-26 16:05 ] | ||||||||
|
投稿日時: 2004-05-26 16:12
? これは「選択リストからの値の取得が行えない」の方じゃないんですか? 最初から21個、なんてのは、我々凡人は考えなくていいんです。 雲の上の人に任せておきましょう。 ひとつずつ、確認していきましょうよ。 まず、requestから、ひとつ、パラメータを取得できるコードを書きましょう。 動いたら、ひとつ増やして2にして、ちゃんと動くコードを書きましょう。 動いたら、・・・(略) (略) 動いたら、ひとつ増やして21にして、ちゃんと動くコードを書きましょう。 誰でも、難しい問題はまず単純にして、 少しずつ複雑にしていく、ということをやってるわけです。 それにしても、syuというフィールドが15個、ten、hyoukaというフィールドがあって、 IDをaaという配列に格納しているんですか。 いや、別にどこかで見たことがあるな、とか考えてる訳じゃないですよ。 | ||||||||
1
