検索結果
DB
- 全てのカテゴリ
- 全ての質問
- JSP データベースへの数回の接続
いつもお世話になっております。 今私は、JSPからデータベース(Access 2003)へデータを追加・検索をしようとしています。 データベースにデータを追加するため、データベースを接続する記述及び追加をする記述を書き、データを追加していきます。 その下の記述にHTMLが入り、HTML文の後に今度はデータベースに検索をかけてデータを取得し、その記述の下に更にHTML文を記述し取り込むといった流れでプログラムを書いております。 ■HTML文 ■データベース追加文 ■HTML文 ■データベース検索文 ■HTML(データベースからの取得データもいれる) しかし、データベースへは、追加はされているのですが、検索の記述の部分がまったく読まれておらず、ジャンプされており、どうしても検索ができません。 JSPからデータベースへの接続は初めてですので、わからないことも多く、もしかしたらJSPでは数回のデータベースへの接続はできないのかな?と思いながら、最終的にこちらで伺い参りました。 プログラムが長いため、HTML文を除き、データベースの部分だけ下に記述させていただきます。その記述の中でのこの変数はどこからもってきているのかな?と思われる方もいらっしゃるかと思いますが、しっかり値が入っておりますので心配ございません。 <%@ page import="java.sql.ResultSet"%> <%@ page import="java.util.*" %> <%@ page import="javax.servlet.*" %> <%@ page import="java.sql.SQLException" %> <%@ page import="java.sql.Connection" %> <%@ page import="java.sql.*" %> <%@ page import="java.util.Date" %> <%@ page import="java.util.Calendar " %> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con =null; con = DriverManager.getConnection("jdbc:odbc:QUIZDB"); Statement sql; sql = con.createStatement(); Calendar cal = Calendar.getInstance(); Integer nen=cal.get(Calendar.YEAR); Integer tu=cal.get(Calendar.MONTH)+ 1; Integer hi=cal.get(Calendar.DATE); String userName=(String)session.getAttribute("userName"); Integer userId=(Integer)session.getAttribute("userId"); sql.executeUpdate( "INSERT INTO Seiseki(氏名,ID,ジャンル,正解数,クイズ日付)"+"values('"+userName+"','"+userId+"','"+aa+"','"+seikaiten+"','"+nen+"/"+tu+"/"+hi+"')"); sql.close(); %> <■HTML文がはいります> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection db =null; db = DriverManager.getConnection("jdbc:odbc:QUIZDB"); String sq = "select * from Seiseki where(氏名= '"+userName+"') and (ID = '"+userId+"')"; Statement st; st = db.createStatement(); ResultSet res; res = st.executeQuery(sq); if(res.next()){ String Name=res.getString(1); String Id=(String)res.getString(2); Integer id =Integer.parseInt(Id); String jyanru=res.getString(3); String seikai=res.getString(4); int kazu =Integer.parseInt(seikai); String hizu=res.getString(5); } st.close(); %> <■HTML文が入り、変数を入れて表示させます> 以上となります。どんな小さなことでも構いませんので、お手数ですがアドバイス宜しくお願い申し上げます。
- ベストアンサー
- Java
- aabbccddzz
- 回答数3
- Perlで一覧表示
お世話になっております。 Perl初心者で、Java等は少し経験があります。 「検索を行い一覧を表示する」という画面をPerlで作成する際の 作り方について質問させてください。 現在は以下のような構成で画面を作っています。(DBアクセスには DBI を使用しています) ------------------------------ 【DAO的な pm】 引数として検索条件を受け取り、 DB にアクセスし、 $sth->fetchrow_arrayref で取り出した検索結果を ハッシュや配列に詰めて返す 【画面の pl】 上記DAO的な pm を利用して検索結果を受け取り、 それをループで回して一覧として表示する ------------------------------ ただ、これだと配列にデータをため込むので 検索結果が多くなるとメモリをくいそうで気になっています。 (あと後述の方法と比べるとやっぱり遅い気がする…) 他の方が Perl で作った画面を見たところ、以下のような作り方を見かけました。 ------------------------------ 【画面の pl】 画面内で SQL を発行し、 $sth->fetchrow_arrayref で取り出した検索結果を 逐次出力していく ------------------------------ こちらのほうだと、一覧に出すものが多くても 上からパラパラ表示されていくので 閲覧者側のストレスも少ないと思ったのですが、 Perlの作りとしてはこういうほうが一般的なのでしょうか。 なんとなくDBアクセスは汎用的なクラスにしてしまいたい気持ちになるのですが Perlではあんまりそういうことはしない、とかPerlでもするよ、とか ご存じの方がいらっしゃいましたら教えてください。 あとは関数の戻り値として検索結果をごそっと返すのではなくて、 関数の引数として「一件分のデータを受け取るDelegate」を渡してみたらどうだろうかとか思っているのですが 変でしょうか… よろしくお願いします。
- phpからpostgresにSQLを投げるとエラー
お世話になります。 phpで作成したある機能から、postgresに対してupdate文を投げると以下のようなエラーが返ります。 server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. update文は非常に簡単なものです。 UPDATE [table_name] SET column1 = 'value1', column2 = 'value2', upd_date = 'yyyy-mm-dd hh:mm:ss' WHERE column_key = 'key' このエラーがでると、該当機能で発行するそれ以降のクエリは全て同様のエラーで失敗しますが、DBが落ちるなどの現象はありません。 他の機能から別トランザクションでアクセスした場合は、正常にアクセスできます。 システムログを確認したところ、同時間帯に以下のようなエラーがでました。 kernel: postmaster[11273]: segfault at 0000002a9e866000 rip 000000000057e4c8 rsp 0000007fbfffccb0 error 6 しかし、このエラーは毎回でるわけではなく、成功する場合もあります。 vacuumdb -U postgres [db_name] -t [table_name] -z を行うとそのエラーは出なくなります。※table_nameは同一。 ただ、バキューム後、2~3時間たつとまた同じ個所で同様のエラーがでます。 該当の機能は1時間に1回動作する機能なのですが、DBの負荷を考えると1時間に1回バキュームをかけるのも忍びないです。 現在は、深夜、朝、夕の計3回バキュームをかけています。 ※一応、実運用レベルではなんとかごまかしている状態です。 データセンターに問い合わせたところ、とくにディスク障害等は出ていないようです。 (どのような調査をおこなって、障害なしと判断しているかまでは、ちょっとわかりません。) セグメンテーション違反とでているので、ハードはあまり関係ないような気がしますし。 ここ、1週間くらいからいきなり出だしたエラーで困っております。 よろしくお願いいたします。 PHP Version 4.3.9 PostgreSQL 7.4.29 CentOS release 4.8 (Final)
- 締切済み
- PostgreSQL
- tsuchihisa
- 回答数1
- PHPの文字化けについて
いつもお世話になってます。 以下の様な問題が発生しておりまして、 何か解決するための情報がありましたらご提供頂けませんでしょうか。 ------------ PHPで、テキストボックスと登録ボタンを配置した簡単な入力フォームを作成しました。 (登録ボタン押下後は入力した文字を消すことはせず、 DB側に登録した内容をテキストボックスに表示するような形式です。) ところがテキストボックスに「能」と言う文字を入力すると、 文字化けを起こし、「??」と言う文字が表示されます。 「一」や「日」などは問題ありませんでした。 これは2byte文字の変換に失敗している所為と考え、文字コードについて調べました。 PHP側からは全てutf8の文字コードでデータを送信しています。 DB側の文字コードは以下のようになっていました。 >show variables like 'character\_set\_%'; Variable_name Value character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server ujis character_set_system utf8 各種サイト様を参考にしたところ、 character_set_server が ujis となっているのが問題のような気がしています。 ですが、本DBは学校で借りているレンタルサーバを使用しているため、 my.cnf等直接ファイルを修正することが出来ません。 なので、以下のサイト様を参考にSQL発行の際には必ず SET character_set_server = utf8; も発行するようにしてみたのですが、上手くいきませんでした。 http://thesnowcolor.blogspot.jp/2010/10/phpmyadmin.html 自ら試したのはここまでです、何かほかに調べたほうがよい、 などありましたら情報のご提供宜しくお願い致します。 【PHP環境】 Apache 2.2.3 PHP 5.1.6 MySQL 5.0.45 (※他、必要情報ありましたらご指摘お願いします)
- ベストアンサー
- PHP
- megumi1122
- 回答数1
- PHP&MYSQLでの検索システムについて
PHP&MYSQLでチェックボックスを使用した絞込み検索システムを制作しようと思っています。 検索機能の内容は □居酒屋□レストラン□美容室 のチェックボックスに複数また、いずれかにチェックをして該当されたお店の写真(一枚)と説明文を1ページ20店舗ずつ表示したい思っています。 現在、MYSQLにデータベース、テーブルをつくりそれをチェックボックス用のHTMLとデータ取得用のPHPでMYSQLに接続、データを読み出すことはまでは出来たのですがチェックボックスで絞込みが出来ない状態で作業がとまっています。どなたかにご教授お願いしたいと思い質問させていただきました。よろしくお願い致します。 また、画像はどこに格納しておくのが良い方法なのでしょうか? ソースは select.html <body> <form name="form" action="search.php" method="post"> <input name="key[1]" value="居酒屋" type="checkbox" />居酒屋<br> <input name="key[2]" value="レストラン" type="checkbox" />レストラン<br> <input name="key[3]" value="美容室" type="checkbox" />美容室<br> <p><input value="検索開始" type="submit" /></p> </form> </body> search.php <?php $link = mysql_connect('localhost', 'root', 'pass'); if (!$link) { die('接続失敗です。'.mysql_error()); } $db_selected = mysql_select_db('mysqltest', $link); if (!$db_selected){ die('データベース選択失敗です。'.mysql_error()); } if($debug) print_r($HTTP_POST_VARS); //クエリ生成 $query = "SELECT id,name,state FROM personal_info "; mysql_set_charset('utf8'); //検索条件生成 //名前 if(!empty($name)) { $value = addslashes($value); $where = "value = '$value' && "; } if(!empty($where)) { $where = substr($where, 0, -4); $where = "WHERE " . $where; } $query .= $where; if($debug) { print "<BR><BR>"; print $query; } $result = mysql_query($query); $num_rows = mysql_num_rows($result); if($num_rows == 0) $message = "該当するデータはありませんでした"; else $message = $num_rows . "件ヒットしました"; ?> 検索結果<br> <?=$message?> <table border=0> <? while($row = mysql_fetch_assoc($result)): ?> <tr><td><?=$row[name]?></td></tr> <? endwhile; ?> </table> <a href="select.html">再検索</a> 環境 XAMPP 1.3.0.1 PHP 5.2.9.9 MYSQL 5.1 また、この検索システムに関する書籍やサイトがありましたら教えて頂けたらうれしいです。
- .forwardを利用した、メールをトリガーにするPHPの起動について
初めて質問させていただきます。 初めてなので、質問の仕方にも不手際があるかもしれませんが ご容赦ください。 サーバーはWEBアリーナさんのをお借りしています(webarenasuite2) メールはPostfixで受信しています。 <<目的>> メールの受信をトリガーにしてPHPプログラムを起動させようとしております。最終的にはメールの本文などのDBに取り込もうとしていますが、とりあえずプログラムを起動できるかを確認したかったのでメールの内容などは関係なくDBに適当な名前のテーブルを作成するようなプログラムになっています。 <<症状>> 対象のメールアドレスにメールを送ると、エラーメッセージなどは一切返ってきません。が、望む動作も一切しません。 直接test.phpをブラウザで動かすと、DBにテーブルを作成します(望んだ動きです)。 おそらくtest.phpを.forward経由で動かせていないのだろうと思いますが、その理由がわかりません。 自分が確認したことを以下に記します。 (1).forwardの置き場所 プログラム起動ではなく、メール転送の記述を行い、メールの転送が行われることを確認しました。.forwardの置き場所は間違えていないかと思います。 (2).forwardのパスの確認 .forwardには以下の記述がしてあります。 |"/usr/bin/php -q /home/*****/web/test.php" phpが/usr/bin/phpなのはおそらく間違いないかと思います。 また、絶対パスの指定はtest.phpにrealpathの記述を書いて 確かめました。 (3)パーミッションの確認 .forwardは600 test.php自体や、その上の階層のwebや*****、homeなどもパーミッションも実行権限を与えてみました。755などになっています。 以上です。 2日以上詰まってしまいました。 お手数をおかけしますが、お手すきの方がいらっしゃいましたら、よろしくおねがいします。
- アラートでyes noを作りたいです。
PHP初心者です。よろしくお願いいたします。 ネット上で、いろいろ勉強していて、次のようなコードを見つけました。 <?php $url = "localhost"; $user = "root"; $pass = ""; $db = "SampleDB050"; // MySQLへ接続する $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。"); // データベースを選択する $sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。"); // クエリを送信する $sql = "SELECT * FROM T01Prefecture"; $result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql); //結果セットの行数を取得する $rows = mysql_num_rows($result); //表示するデータを作成 if($rows){ while($row = mysql_fetch_array($result)) { $tempHtml .= "<tr>"; $tempHtml .= "<td>".$row["PREF_CD"]."</td><td>".$row["PREF_NAME"]."</td>"; $tempHtml .= "<td><a href=\"update.php?cd=".$row["PREF_CD"]."\" target=\"_self\">更新</a></td>"; $tempHtml .= "<td><a href=\"delete.php?cd=".$row["PREF_CD"]."\" target=\"_self\">削除</a></td>"; $tempHtml .= "</tr>\n"; } $msg = $rows."件のデータがあります。"; }else{ $msg = "データがありません。"; } //結果保持用メモリを開放する mysql_free_result($result); // MySQLへの接続を閉じる mysql_close($link) or die("MySQL切断に失敗しました。"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS"> <title>全件表示</title> </head> <body> <h3>全件表示</h3> <?= $msg ?> <table width = "300" border = "1"> <tr bgcolor="##ccffcc"><td>PREF_CD</td><td>PREF_NAME</td><td colspan="2">EDIT</td></tr> <?= $tempHtml ?> <form action="insert.php" method="post"> <tr> <td><input type="text" name="cd"></td> <td><input type="text" name="name"></td> <td colspan="2"> <input type="submit" name="submit" value="追加"><input type="reset" value="リセット"> </td> </tr> </form> </table> </body> </html> この上のコードの、更新と削除を行うときに、Javascriptで、yes, no のアラートを出したいのですが、ちょうどデーターベースから引っ張ってきているところなので、このコードをどう変えればよいのかわかりませんでした。基本的なことを聞いてしまっているかもしれませんが、よろしくご教授願います。できるだけ、具体的にお願いします。
- Access97でクエリーのクエリーが表示されない。
すみません。どなたかわかる方見えましたら教えてください。 当方、Win2000、Access97で生産管理のDBを作って管理をしています。 PCの調子が悪くて再インストールしたらクエリーの集計値を他のクエリーとリンクさせて表示させていたのが表示しなくなりました。 簡単に説明すると、「材料在庫」のテーブルがあり集計クエリーで材料名をグループ化して残量を集計している「材料在庫クエリー」と生産計画テーブルの材料名とをリンクさせてクエリーを表示させています。 症状1 再インストールする前はちゃんと表示されていましたし、他の同じ環境のPCでそのDBを動かしても表示されます。 症状2 エラーが出るわけでもなく、空白になっています。 症状3 リンクの形式を現行は「生産計画テーブル全部と在庫材料クエリーの同じフィールドだけ表示させる」にしていますが、逆の設定にするとなぜか表示されます。 症状4 材料在庫クエリーを一旦テーブル作成して同じようにリンクさせるとちゃんと表示されます。 症状5 ソフト的におかしいと思ったため再インストール作業は3度やり直しましたので間違いはないと思います。Access97はすべてインスと標準インスを試しましたが両方だめでした。 また、OSをインスしてから環境をすべて整えた上(サービスパック4など)でAccessインストールや、OSのみ入れてAccessインストールをこころみて見ましたが一緒の症状でした。 上記の点からクエリーのクエリーのリンクが表示されないようになってしまっている様ですが、何か同じような事例等で解決したことはないでしょうか? この症状だけだといいのですが他にもおかしなところがあるとDB自身使えなくなるので非常に困ります。 もう私では直す手段がないです・・・・・ 何とかよろしくお願いします。
- 締切済み
- その他(データベース)
- takoshi
- 回答数6
- javascriptでのログアウトボタン
お世話になっております。 現在サーブレットの学習をしており、DBへアクセスしログインした情報をセッションで 残しているのですが、ログアウトのボタンを設置した際、 jacascriptのみでセッションを切断しログイン画面へもどることは可能でしょうか。 function logOut() { ret = confirm("アドレス帳を終了しますか?"); if (ret == true) { session.invalidate(); location.href="/jsp/Login.jsp"; return true; } } とスクリプトを記述してもjspへ遷移しないのはなぜでしょうか。 どうか知恵をおかしください。
- ベストアンサー
- JavaScript
- heka_11
- 回答数1
- テーブルのキー項目の選定
データベースを用いて、音楽情報を管理しようと考えています。 今のところ、列は曲名、歌手、アルバム、作詞、作曲、ジャンルを定義しています。 困った事に、数万と存在する楽曲の中から一意に識別するためキー項目がなかなか思いつきません。 予想で、曲名と歌手をキー項目に設定すれば一意に識別できるのでは?と考えています… 音楽情報をDB化する時に、キー項目に設定すべき項目を教えてください。
- ベストアンサー
- MySQL
- NoMusicNoLife49
- 回答数1
- テーブルの結合について
以下の二つを実行すると、2 の方がかなり速いのですが理由が分かりません。 分かる方教えてもらっていいですか? DBはMYSQLでInoDBです。 ちなみに Aは1万件、B は10万件ほど 1 のSQL SELECT * FROM A LEFT JOIN (SELECT * FROM B WHERE ・・・ GROUP BY XXX) B ON A.id = B.XXX WHERE ・・・ GROUP BY A.id 2 のSQL (SELECT * FROM A ・・・ GROUP BY ID ) A LEFT JOIN (SELECT * FROM B WHERE ・・・ GROUP BY XXX) ON A.ID = B.XXX.ID
- PHPのmysql関数について
RedHat7.2のFTP版でそのまま内包されているPHP3,PHP4をインストールしました。 通常の関数は使用できるのですが、mysql_connectを使ってDBにアクセスしようとすると Fatal error: Call to undefined function: mmysql_connect() in xxx on line xxx というようなエラーになります。 関数が使えないってこういうことってありうるのでしょうか? どなたか原因をお知りでしたら教えてください。 (Apahe ,mysqldは正常に起動した状態です。)
- CSV形式にしてダウンロードするには?
私はperlとMySQLを使ってインターネットサイトを作っている者です。 プレゼントの申込者をDBに格納しています。 それを何とかcsv形式でインターネットからダウンロードするような仕組みを考えているのですが、思い付きません。 どうかサンプルソースなどをご存知の方は教えて頂けないでしょうか? またその他にエクセルなど、他のファイルだったら簡単だよという情報もお待ちしております。 宜しくお願いします。
- 締切済み
- その他(データベース)
- aeic
- 回答数1
- 文字列からダブルクオートの削除
お世話になります、 CSVからデータを取得してDBに書き込む処理を行っているのですが、CSVデータで型が文字のものはダブルクオート(")でくくっています。 (例) "りんご",100,"円" "ばなな",200,"ドル" このままデータをStringTokenizerクラスを使用して取得した場合りんごは("りんご")のようにダブルクオートがついた状態で取得されてしまいます。 ダブルクオートを取り外す方法またはメソッドを教えていただきたいのですが、よろしくお願いします。
- ベストアンサー
- Java
- takataka111
- 回答数4
- XPクリーンインストール コマンド
今 MEフォーマットしてXPホーム版のアップグレード版でクリーンインストール準備中 段階です。 画面は DOS画面。 HD パーテーションあるので CDはFなってます。 A:\>をf:\>にして f:\>setup で エンターすると This program cannot be run in DOS mode f:\>set半角up だと コマンドまたはファイル名が正しくありません と 返ってきます 先へ 進めません。どうしたら よいのでしょう。 教えてください。お願いします。 機種は 東芝Dynabook DB65 です。
- ベストアンサー
- Windows XP
- tmi
- 回答数5
- Accessでテーブルが更新されたとき、TXTを吐くようには出来ないか??
こんにちは、 AccessのDBにISDNで外から見に行こうとしています。 しかし、すごく重くて上手く動作しません。 データベースのAccessが更新されるたびにTXTで更新したところを 自動的に投げるってのは、できないものなのでしょうか? データベースのパソコンに負担をかけたくないので「マクロ」は 使えません。 どうか、よろしくお願いします。 また、別の方法でもないか良いアイディアがありましたら お教え下さい。
- ベストアンサー
- その他(データベース)
- kzkzkzkz
- 回答数5
- Access2000のテキスト型から数値型への変換
外部データベースで、電話番号がばらばらにテキスト型で入力されているのですが、 それをきれいな数値型に修正したいと思っています。 全角だったり半角だったり、()があったり、ハイフンがあったりなのですが、 すべて統一して数字のみにしたいです。 追加クエリで、そのようなばらばらなデータを、数値のみにして自分のDBに追加していきたいのですが、よい方法がありましたら、教えて下さい。
- 特許出願中のビジネスモデルについて。
特許出願中で、公開されていないビジネスモデルは調査可能なのでしょうか。 特許庁のDBでは、特許公開されていないと、検索できないもので。 もし、調査不可である場合、その特許出願後1年6ヶ月後に公開された際に、 出願から公開までにその存在を知らずに、全く同じビジネスモデルで 特許出願せずにビジネスをしていたら、それは侵害になってしまいますよね。 分かる方教えてください。
- ベストアンサー
- 法務・知的財産・特許
- donfan
- 回答数3
- PC立ち上げ時ディスプレイ画面の色が【赤み】がかる
PC起動立ち上げ時にディスプレイ画面が30秒位【赤み】がかります・・・(TT) 立ち上げ以降は、正常になるのですがディスプレイ部分の寿命が近くなってきたのでしょうか。それとも故障でしょうか。 PC環境は次の通りです。 (1) DynaBook DB65P/4MC(メモリー増設192MB) (2) OS ME 4.90.3000 (3) IE 6.0.2800.1106 (4) ADSL(YahooBB)を使用 (5) ウイルスバスター2004常駐 (6) 無線LANを使用(I・O DATA WN-B11/AXP)
- 再セットアップをするときの注意点
Dyna Book DB60C/2cc と言うパソコンを使っています。 OSはMeです。 最近調子がよくありません。例えばスイッチを入れるといきなりフリーズしてしまうとか・・・。 そこで再セットアップをしようと思うのですが、注意点を教えてください。 1.パソコン購入後に接続した周辺機器のインストール用のCDはすべてそろっています。 2.作成したデータは、すべて外付けハードディスクに記録してあります。 3.送受信したメールの保存方法がわかりません。
- ベストアンサー
- Windows Me
- funa-daiku
- 回答数2