• 締切済み

大量データの受け渡し

DBより検索したデータを一覧表示し、そのデータをcsvファイルへ保存しています。 DBの検索時間が結構かかってしまうため、保存する際に、再度検索を行うのは避けたいと考えています。 そこで、<input type=hidden name=data>に、データをセットして送信していたのですが、 件数が多すぎるとエラーとなってしまいます。 画面上に、送信データが見えなければどんな方法でもかまいません。 どなたかいい方法を教えて下さい。 宜しくお願い致します。

みんなの回答

  • SpeedSky
  • ベストアンサー率0% (0/0)
回答No.3

asp.netであればセッションファイルを利用するがBESTと思います。データ量が多くてもSQLServerに定義すればメモリもあまり使いません。

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.2

ファイルに書き出して、移動させると良いでしょう。 比較的、古くから利用されている手法ですが。 1)ランダムなファイル名を作成する。 2)カタログを確認して、ファイル名が存在しなければ、プロセスIDと共にカタログへ書き込む。 3)次に呼び出すASPに、ファイル名とプロセスIDをパラメータとして渡す。 4)ファイルから必要な情報を取得する。 5)ファイル名とプロセスIDを頼りにして、カタログから該当するファイル名, プロセスIDの情報を削除する。 カタログはテキストファイルで良いです。ファイル名が重ならなければ、パラメータの受け渡しに失敗したり、カタログを消し忘れる。と言うことも無いのですが、プロセスIDを保険で付けて置けば、まず問題は無いでしょう。(同一時間に別プロセスから同一ファイル名が作成されてしまう。と言うことを避けることができる。) この方法の場合、パラメータを受け渡すファイル名が重なってしまわない様に、カタログを自力で管理する。と言う部分がポイントです。 共通ルーチンとして開発してしまえば、後は使いまわしができるので、比較的簡単ですよ。

  • coco1
  • ベストアンサー率25% (323/1260)
回答No.1

動作環境はなんですか? また、検索結果をCSVに保存するのは、どの時点で誰が行うのですか? 誰に送信するのですか? たとえば、phpなどのスクリプトであれば検索結果をそのままダウンロードすることもできますし、ディスク上にリダイレクトしてあとからFTPで取得する、という手順も考えられると思いますが。

関連するQ&A

  • ファイル間のデータの受け渡しについて hidden? session?

    1.php (フォームを表示) 2.php (入力内容の確認ページ) 3.php (最後のページ、送られた値を使用し、メール送信やデータベースに書き込むなどの処理をしたい。) とhiddenを使い、3つのファイルを作成しました。 ファイル"1.php" <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title></title> </head> <body> <form action="2.php" method="post"> <input type="text" name="data1" value="データその1"> <input type="hidden" name="data2" value="隠しデータ"> <input type="submit" name="" value="送信"> </form> </body> </html> ファイル"2.php" <?php echo "<h1>確認ページ</h1>"; echo $_POST[data1]."<BR>"; echo $_POST[data2]; print<<<_HOGE_ <form action="3.php" method="post"> <input type="hidden" name="data1" value="$_POST[data1]"> <input type="hidden" name="data2" value="$_POST[data2]"> <input type="submit" name="" value="送信"> </form> _HOGE_; ?> ファイル"3.php" <?php echo $_POST[data1]."<BR>"; echo $_POST[data2]; ?> 2.phpの(入力内容の確認ページ)を見ているときに、他の人が2.phpにアクセスして入力内容を盗み見る事は出来るのでしょうか? (2.phpに直接アクセス出来ないように、リダイレクト処理はするつもりですが。) 2.phpから3.phpに値を渡す場合、このようなhiddenの使い方は間違っていますか? セッションを使った方が良いのでしょうか?

    • ベストアンサー
    • PHP
  • JavaScriptにおいてPOSTで送信されたデータを取得出来ますか

    <form action="自分" method="POST"> <input type="hidden" name="abc" value="1"> <input type="submit" name="OK" value="OK"> </form> 上記のように、POST渡しで送信したとき、Javascriptにて、hiddenのデータを取得することができるのでしょうか? 出来るのであればその方法を教えてくださいませんか。 よろしくお願いします。

  • PHPで隠しデータをPOST送信する方法

    <form name="example" method="POST" action="example.php"> <input type="text" name="id" value="" /> <input type="password" name="pw" value="" /> <input type="submit" value="ログイン" /> </form> 上記のようなログインフォームがあるとします。 <input type="hidden" />のようにソースを見たらわかってしまう方法ではなく、 クライアント側で完全に見えないよう、id,pwの送信と同時にPHPで隠しデータをPOST送信する方法はございますでしょうか。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • phpでmysqlのデータがupdateできません。

    仕様Apache2.0 PHP5.1.6 MySQL5.0.27 です。 以下の通りです。どこがだめですか? <FORM method="POST" action="order_regist.php"> <INPUT type="hidden" name="id" value="<?=$id?>"> <INPUT type="hidden" name="order_day" value="<?=$order_day?>"> <INPUT type="hidden" name="order" value="依頼あり"> <INPUT type="submit" value="同意して作業を依頼"> </FORM> 上記を次ページへ送信 以下次ページ /* MySQL DB接続情報の設定 DB名/ユーザー名/パスワード */ define("DB_NAME", "*****"); define("DB_USER", "*****"); define("DB_PASS", "*****"); /* リクエストデータの取得 */ $id = $_REQUEST["id"]; $order_day = $_REQUEST["order_day"]; $order = $_REQUEST["order"]; /* MySQLに接続 */ $link = mysql_connect("localhost", DB_USER, DB_PASS) or die("MySQLとの接続に失敗しました。"); /* 接続データベースを選択 */ mysql_select_db(DB_NAME) or die("データベースとの接続に失敗しました。"); /* クライアントのキャラクタセットを変更 */ mysql_query("SET NAMES ujis") or die( "クエリーの実行に失敗しました" ); /* データを更新するクエリーを設定 */ $query = "UPDATE all_cleaning_user SET order = '" . $order . "', order_day = '" . $order_day . "' WHERE id = " . $id; /* データベースにクエリーを実行 */ mysql_query($query) or die("クエリーを実行できませんでした。"); /* MySQLより切断 */ mysql_close($link); クエリーを実行できませんでしたのエラーが出ます。なぜですか?

    • ベストアンサー
    • PHP
  • 配列の受け渡し

    こんばんは。 あるページで使用した配列を他のページでも使いたいのですが、 こういう配列を格納した変数の受け渡しって出来るのでしょうか? 普通の変数のデータを受け渡したかったら <input type="hidden" />で直接valueに変数の値を入れれば良いですが、 配列だと自分では以下のように愚直にやる方法しか分かりません。 もっとちゃんと渡せる方法ってあるのでしょうか? <?$a=array(1,2,3,4,5);?> <? for($i=0;$i<count($aaa);$i++){ ?> <input type="hidden" value="<?=$aaa[$i]?>" name="hoge[]"/> <?}?>

    • ベストアンサー
    • PHP
  • シングルコーテーションのデータ受渡し方法

    現在PHPとMySQLで初めてシステムの作成をしていて、データの受渡し方に悩んでいます。 FormでPOSTのデータの「'」の受渡しで、現在はPHP内で $body .= "<FORM NAME='objform' ACTION='form_check.php' METHOD='POST'> <INPUT TYPE='hidden' NAME='name' VALUE='$name'></FORM>" のようにすると、$nameに途中に「'」が入ってしまった場合、途中で切れた文字が受け渡されてしまいます。 そこで、 print <<< EOF <FORM NAME="objform" ACTION="form_check.php" METHOD="POST"> <INPUT TYPE="hidden" NAME="bunrui" VALUE="$bunrui"> </FORM> EOF; のようにして、受渡しは出来たのですが、Javascriptの併用で、 <input type="button" value="編集" onclick="EditExec('$name', '$namae_cd');"> のように、引数を複数渡す時に「'」を使うとjavascriptが動かなくなってしまいました。 皆さんはデータ受渡しの時はどのように行っているのでしょうか? もし良い解決策がありましたらご教授下さい。

    • ベストアンサー
    • PHP
  • フォームタグについて

    二つのフォームタグを一つのボタンで送信したいのですが、可能でしょうか? <form action="http://aaa/" method="post"> <input type="hidden" name="comment" value="テキスト "/> <input type="hidden" name="mode" value="com_w" /> <input type="hidden" name="no" value="1" /> <input type="submit" value="登録" /></form> <form action="http://bbb/" method="post"> <input type="hidden" name="comment" value="テキスト "/> <input type="hidden" name="mode" value="com_w" /> <input type="hidden" name="no" value="2" /> <input type="submit" value="登録" /></form> 同じデータをもっているフォームですが、送信するページが別々になっています。 この二つのフォームを一つの送信ボタンで送信できますでしょうか? 色々と調べましたがわかりません。 よろしくお願いいたします。

  • フォームからフレーム内へのデータ受け渡しについて

    いつもお世話になります。 フォームからフレーム内にデータを流してもデータの反映がうまくいきません フォームのソースは下記の通りで、受け側は、3つのフレームで構成されています。 データの送り先は、3つあるフレームのひとつで<FRAME name="bottom" src="URL01.php">になります。 フレームを使わずに、フォームからURL01.phpにデータを送信するときちっと反映されます。 なぜ、フレームを使ったときは、データが反映されないのかがわかりません、ご教示をお願いいたします。 <html> <head> <title></title> <body> </head> <form method="POST" action="URL" target="bottom" name="db_login"> <table border="0"> <tbody> <tr> <td>データベース名</td> <td><input size="20" type="text" style="ime-mode:disabled" name="db_name"></td> </tr> <tr> <td colspan="2" align="center"><br> <input type="submit" value="接続"> </tr> </tbody> </table> </form> </body> </html>

    • 締切済み
    • PHP
  • MySQL 5 PHP 5 データの受け渡しについて 困ってます。。

    MySQL 5 PHP 5 データの受け渡しについて 困ってます。。 下記内容で困ってます。機能としては (1)プロダクトテーブルからデータを読み込み表示。 ※プロダクトテーブルには商品データが8件登録されています。 (2)注文ボタンが押されたら受注テーブルにデータをカキコミ。 なんですが。。。 プロダクトテーブルから読み込んだデータを受注テーブルに書き込むと $product_id がいつも8(受注テーブルデータの一番最後の数字) $product_name  同じ $product_price 同じ ・・・ になってしまいます。 whileループしているので変数に代入するのも繰り返されて一番最後のデータが いつも格納されている状態だと思うのですが、この解決策を教えて下さい! 最近始めたばかりで良く理解出来ないので噛み砕いて教えてくれる方お願いします>< <?php //---------------------------------------- // □:テーブルからデータを読む //---------------------------------------- $mysql->query("SELECT * FROM products ORDER BY product_id") or die(mysql_error()); while($row = $mysql->fetch()){ $product_id = $row["product_id"]; $product_name = $row["product_name"]; $product_price = $row["product_price"]; echo <<<EOT <tr> <td align="center">$product_id<input name="product_id" type="hidden" value="$product_id" size="10" /></td> <td align="center">$product_name<input name="product_name[$product_id]" type="hidden" value="$new_product_name" size="10" /></td> <td align="right">$product_price<input name="product_price[$product_id]" type="hidden" value="$new_product_price" size="10" /></td> <td><input name="new_use_date[$product_id]" type="text" value="$new_use_date" size="20" /></td> <td><input name="new_use_time[$product_id]" type="text" value="$new_use_time" size="20" /></td> <td><input name="remarks[$product_id]" type="text" value="$new_remarks" size="40" /></td> <td><input name="submit_add" type="submit" value="注文する" /></td> </tr> EOT; } //ここまでwhileループ[終了の閉じカッコ] ?>

    • ベストアンサー
    • MySQL
  • Strutsのデータ受け渡しについて

    画面遷移時のデータの引継ぎについて。 画面A→画面B とデータを引き継ぎたい状態です。 画面AにはDBから取得した値を一覧表示しています。 --Action-- TestLogic testLogic = new TestLogic (); ArrayList<datas> list = testLogic.getDatas(); request.setAttribute("sendMail", list); 補足:ArrayList<datas> listにはdatas.classが格納されています。 datasクラスはDB項目に合致したgetterとsetterをもった値保持用のクラスです。 --JSP-- <nest:iterate id="sendData" name="sendMail" indexId="idx"> <html:checkbox name="sendData" property="checkBox" indexed="true"/> <bean:write name="sendData" property="user_id" /> <html:hidden name="sendData" property="user_id" indexed="true"/> </nest:iterate> の様になっています。 一覧表示されたデータ内のチェックボックスをチェックしたものだけを次画面で取得したいと考えていますが、次画面のACTIONにて request.getAttribute("sendMail"); を行ってもNullが返ってきてしまいます。 Enumerationを使うことも考えたんですが、全てのHidden項目が返ってきてしまうのでデータの判別が出来ません。特に明細が複数行あるときには困難です。 こういったデータの引継ぎはどのように行えばよいのでしょうか? どうぞご教授下さいますよう、お願い申し上げます。

    • ベストアンサー
    • Java