いつもお世話になっております。
JSPにてUNION ALLを使用してSQLを実行します。
(ソースは必要部分のみ記載致します)
SQL実行後にテーブルのカラムにある「番号」と「テーブル名」を
<FORM method="post" action="Next_View.jsp?table=????">
<input type="hidden" name="num" value="<%= rs.getString("番号")%>">
の部分で送りたいのですがどの様に記述すればいいのか調べてみましたが
分かりませんでした。
説明が分かりにくいかもしれませんがどうかご教示下さいませ。
ちなみに番号はT_2005・T_2006・T_2007 共に1から順にオートナンバーで振られています。
String str = request.getParameter("Num");
rs = stmt.executeQuery
("SELECT * FROM T_2005 where ID='"+ str +"' union all SELECT * FROM T_2006 where ID='"+ str +"' union all SELECT * FROM T_2007 where ID='"+ str +"'");
while (rs.next()){
String year = rs.getString("年齢");
String number = rs.getString("電話番号");
String add = rs.getString("住所");
%>
<TR>
<FORM method="post" action="Next_View.jsp?table=????">
<input type="hidden" name="num" value="<%= rs.getString("番号")%>">
<TD><%= year %></TD>
<TD><%= number %></TD>
<TD><%= add %></TD>
<%-- 詳細ボタンを表示 --%>
<input type="submit" value="詳細">
</form>
</TD>
</TR>
No.2ベストアンサー
- 回答日時:
JAVA上の制限より、SQLパーサの制限が先ですね。
DBによりますが、oracleなら32767バイトまでです。
ただ、そんなSQL文をJSPにべたべた書くか? というのは疑問ではあります。
そこまでこったことをするのなら、JSPだけじゃなく、外部ライブラリを呼ぶ形で結果をもらった方がいいかもしれませんね。
ありがとうございます!
>ただ、そんなSQL文をJSPにべたべた書くか?
おっしゃるとおりかと思います。。。
タグライブラリとか探してみます☆
本当に参考になりました!
ありがとうございました♪
No.1
- 回答日時:
> 説明が分かりにくいかもしれませんが
うん。。。全然わからない。
<% %>で囲まれた部分はサーバ側で動作するもので、通常タグはクライアント側にフォワードされるものだから、渡すという言葉の意味が理解できないです。
<form>タグはたくさんできてしまっていいということですか?
while(rs.next())の結果は複数あるので、formがたくさんできちゃいますが、いいのでしょうか。
それなら、SELECTで"*"を使わずに、実際の必要なカラム名を指定するように、
("SELECT 'T_2005' as tname, seq, year, number, add FROM T_2005 where ID='"+ str +"' union all SELECT 'T_2006' as tname, seq, year, number, add FROM T_2006 where ID='"+ str +"' union all SELECT 'T_2007' as tname, seq, year, number, add FROM T_2007 where ID='"+ str +"'");
とでもして、<%=rs.getString("tname")%> でテーブル名が、帰ってくるからそれをつかえばよいのでは?
※DBが書かれていないので方言があるかもしれませんが。
この回答への補足
やっぱり分かりませんでしたか・・・
すみません。。。
クライアント側にフォワードされると言う言い方をすればよかったですね。
知識が未熟で言葉が思いつきませんでした。
formはたくさんできちゃってもいいです!
>("SELECT 'T_2005' as tname, seq, year, number, add FROM T_2005 where ID='"+ str +"' union all SELECT 'T_2006' as tname, seq, year, number, add FROM T_2006 where ID='"+ str +"' union all SELECT 'T_2007' as tname, seq, year, number, add FROM T_2007 where ID='"+ str +"'");
この様なやり方があるんですね?なるほど!
テーブルは例で書いたのですが本当はDB1つにつき50カラム程あります。
長いSQLでも特に問題のないものなのでしょうか??
たびたび申し訳ございません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォーム上で押されたボタンに...
-
リクエストに応じたselectedの...
-
jspファイルにjavaファイル...
-
javaでDBから取得したデータのJ...
-
「<c:forEach タグが終了し...
-
テキストボックスへの値の代入...
-
JAVAのチェックボックスの扱い...
-
Struts2のファイルアップロード...
-
EL式 true falseを表示
-
JSPでのリストボックス表示
-
Strutsで、どのRadioボタンが選...
-
strutsを使用したjspでjavascri...
-
ラジオボタンの選択肢をサーブ...
-
腕時計の時報をならないように...
-
C言語で今まで表示していた画面...
-
jspでbeanを使いたいのです...
-
ボタンが活性化の場合とは、ボ...
-
strutsで、JSP→アクションクラ...
-
VC++にて、コンソールを二画面表示
-
VB6 開発環境のエディタに行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォーム上で押されたボタンに...
-
リクエストに応じたselectedの...
-
フォームで同じ複数のnameで違...
-
int型の内容をbyteの配列にコピー
-
javaでDBから取得したデータのJ...
-
「<c:forEach タグが終了し...
-
strutsを使用したjspでjavascri...
-
EL式 true falseを表示
-
JSPでのリストボックス表示
-
StrutsでPOSTのデータ(リクエ...
-
formでテキストとファイルタイ...
-
jspファイルで注文フォームの合...
-
jspでjavascript関数へ引数を渡...
-
ラジオボタンの選択肢をサーブ...
-
struts-config.xmlの設定
-
動的に作成したラジオボタンの...
-
JSP+Servletで終了ボタン
-
Servletへフォームから配列を送...
-
Strutsでの入力データチェック...
-
JSPとサーブレット間での画面遷...
おすすめ情報