No.2ベストアンサー
- 回答日時:
>検索されるの度にファイルだけは作成しておく
>ということでしょうか?
まぁ好きなようにしてくださいとしか言いようがないですが
私の触る機会があるシステムでは大きく2つロジックの違うものがあります
(1)都度作成
ダウンロードボタンおす→検索する→結果をダイレクトにテキスト出力する
これが前回提示した方法
メリットとしては、必要なデータが最短時間で入手できること
デメリットは重い処理になると同期処理なのでタイムアウトしてしまうこと
(2)作成依頼してゲット
作成ボタンをおす→作成されたデータが一定時間プールされる→ダウンロード
ボタンをおす→データがダウンロード&ダウンロードされたフラグを付ける
→一定時間が経過したら削除
メリットは非同期処理のためとりあえず放置しておけること、データの再取得にも
むだなSQLを走らせる必要がありません
デメリットは運用方法によってはプールしておくデータが放置されっぱなしになる
可能性が高いこと
業務で使うなら(2)の方がいいでしょうけど、私が個人で作るときは手っ取り早い
(1)を使うケースの方が圧倒的におおいです
この回答への補足
ご回答ありがとうございます。
>ダウンロードボタンおす→検索する→結果をダイレクトにテキスト出力する
これをやりたいのですが、そもそも
「検索する」のときに検索条件をどう設定するのか?
で困ってます。
ソースの構成は下記です。
---------------------------
・コントローラのPHP
--検索ボタン押下時の処理
-> 検索用入力フォームVIEWで検索条件を入力
-> 検索結果表示用VIEWで結果表示
--CSV出力押下時の処理
---------------------------
最初にフォームに値を入力して検索し、結果を得ても
CSV押下時には、フォームに入れた項目は、
検索条件に設定できないのではないかと。。
No.3
- 回答日時:
方法1
・検索結果をHTML表示するときに、テンポラリディレクトリにCSVをユニークなファイル名.csvで作る
そのHTML中にテンポラリディレクトリの.csvファイルのリンクを設置しておく
・テンポラリのCSVファイルは別プロセスで掃除する
(cronまたはCSV生成時用PHP内で、1時間以上経過したファイルを探して消す等)
方法2
・検索結果のHTML中にCSVのダウンロードボタンを設置し、そのformにhiddenで検索条件を埋めておく
・CVSダウンロードのPHPでは、再度検索し(この時点ではヘッダはまだ出さない)、
成功すれば、CSV用のヘッダとCSV形式のデータを送出。
検索失敗時は、HTML用のヘッダとエラーメッセージのHTMLを送出
ですかね。
No.1
- 回答日時:
>もう一度DBを検索させる?
「もう一度」の前段階になにをやっているのかがわかりません。
一度画面上にCSVで出力するのに過不足ないデータを表示するということですか?
SQLの場合、キャッシュも期待できるので、一度検索した内容であれば
再検索しても相応のスピードが期待できますね。
ロジックはたんじゅんに以下の流れになるでしょう。
(1)ボタンを押したという情報を得る(ボタンにnameをつけておくなど)→
(2)データ検索する→
(3)ヘッダを吐く→
(4)データを吐く
この回答への補足
(4)データを吐く
=>この時点で、実際に「ダウンロード」ボタン押下されるかは
分からないのですが、検索されるの度にファイルだけは作成しておく
ということでしょうか?
検索=>ファイルはとりあえず作成=>「ダウンロード」ボタン押下しない場合もある
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
高校生はアルバイトするべきだろうか?賛成だったら「賛」、否定だったら「否」を文頭においてあなたの意見を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
CSV出力にHTMLが入ってしまう
PHP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpでzipファイルダウンロード...
-
指定したURLからファイル(PDF...
-
VB.NETのFTPダウンロードについて
-
ファイルのダウンロードのイベ...
-
CSVファイルをダウンロード時の...
-
PHPでGoogle TTSからMP3ダウン...
-
日本語ファイルのリネームと保存
-
zip圧縮の種類について
-
PHPで複数ファイルのダウン...
-
複数ファイルのダウンロード
-
フォントの色を変えるには?
-
透過PNGが透過されない!!
-
FTPコマンドでディレクトリごと...
-
バッチを用いたフォルダの自動移動
-
PHPのif文でその処理を途中で抜...
-
別ファイルの変数を呼び出した...
-
.phpと.incファイルの違いはな...
-
一定時間毎に同じ動作を繰り返...
-
MySQLのdatetime型の月日0を削...
-
「クラス関数」「メンバ関数」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで複数ファイルのダウン...
-
ダウンロードファイル名の文字...
-
PHPでファイルのダウンロードす...
-
phpでzipファイルダウンロード...
-
ファイルのダウンロードのイベ...
-
zip圧縮の種類について
-
PHPでファイルをダウンロードさ...
-
libxml2のインストール
-
PHPでGoogle TTSからMP3ダウン...
-
eclipseでコメントアウトができ...
-
HTTPで返されるファイル名の取...
-
cakephpでのダウンロード機能の...
-
phpでうまく画像がダウンロード...
-
【PHP】ダウンロードサイト作成...
-
ブラウザでExcelをダウンロード...
-
VB.NETのFTPダウンロードについて
-
複数ファイルを連続でダウンロード
-
PHPのFTP関数ftp_fgetエラーに...
-
ファイル一覧を表示しその画面...
-
PHP 検索結果のCSVダウンロード
おすすめ情報