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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- X(旧Twitter) Twitter検索から除外 1 2023/08/18 11:00
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- iPhone(アイフォーン) 今日のお昼頃からスマホが少しおかしくなりました。 間違って消してしまったアプリをまた入れようとしたら 1 2023/01/15 22:44
- エッセイ・随筆 尋常小学校唱歌『さくら さくら』の解釈について以下のものは成立しますか?普通じゃおもろない? 7 2023/02/26 16:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【PHP】ダウンロードサイト作成...
-
PHPで複数ファイルのダウン...
-
CSVファイルをダウンロード時の...
-
ブラウザでExcelをダウンロード...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
トランザクションが原因?DBに...
-
「@$変数」の「@の意味は?」
-
apache・phpが起動しない・・・
-
PHPの設定で、 エラーが発生し...
-
VBSの「MsgBox」について
-
.phpと.incファイルの違いはな...
-
別ファイルの変数を呼び出した...
-
CFileDialogの最初のディレクト...
-
【PHP】declare命令で”Fatal er...
-
PHPのif文でその処理を途中で抜...
-
URLが.PHPってどういう...
-
.phpファイルが、表示されない
-
FTPコマンドでディレクトリごと...
-
【file_exists】ファイルが存在...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
zip圧縮の種類について
-
PHPで複数ファイルのダウン...
-
phpでzipファイルダウンロード...
-
eclipseでコメントアウトができ...
-
PHPでCSVファイルの任意の行だ...
-
PHP 検索結果のCSVダウンロード
-
PDF ダウンロード
-
PHPでファイルのダウンロードす...
-
ファイル一覧を表示しその画面...
-
libxml2のインストール
-
PHPでファイルをダウンロードさ...
-
CSV出力時の”0”表示(電話番号...
-
ブラウザでExcelをダウンロード...
-
【PHP】ダウンロードサイト作成...
-
wgetの使い方
-
PHPでGoogle TTSからMP3ダウン...
-
PHPで複数ファイルをZIPで圧縮...
-
DelphiのURLDownloadToFile関数...
-
VB.NETのFTPダウンロードについて
-
ExcelとPHPについて・・・
おすすめ情報