2011-12-29 9 views
1

データベースから数百文字(8列に分散している)のデータを取得するPHPページがあります。 1ページ目に表示されますが、2ページ目にも表示されている必要があります。私はすでにそのページ遷移を作るためにフォームを提出しています。ページからページへの新しいmySQLクエリまたはPOST情報?

最初のページから2番目のページにデータをポストする方が効率的(または他の理由で優先される)なのか、ページごとにデータベースをクエリする必要があるのでしょうか?最初のページと2番目のページに別のテーブルがある場合は、別のクエリもあります。

ありがとうございました!
ビリー

答えて

2

それはあなたがあなたの最初のページの読み込み時に取得したデータの本当に少量であれば、むしろ、その後のpageloads上でそれを再クエリよりも$_SESSIONに保管する方が効率的かもしれません。ただし、$_POSTを介して他のページに投稿するべきではありません。クライアントのブラウザにすべてのデータを送信し、何らかの形式でHTMLでレンダリングし、サーバーに返信する場合は$_POSTにします。 $_SESSIONが最適です。

$_POSTの目的は、クライアントからサーバーへのユーザー入力を提供することですが、$_SESSIONの目的はサーバー側のクライアントのページロード間でデータを保持することです。それはまさにあなたの状況です。

確実に知るには、xdebugのようなツールを使用してページの読み込みをプロファイルすることをおすすめします。再実行してデータを格納するときのプロファイル実行時間は、どれがより性能の高いものかを確認するために$_SESSIONになります。

+0

"$ _POSTを通して他のページに投稿するべきではありません。ただし、すべてのデータをクライアントブラウザに送信し、何らかの形でHTML形式でレンダリングする必要があります。 $ _POSTのサーバー。 "とにかくデータを表示してもそれは起こりませんか?両方のページに表示されています。 ありがとうございます! ビリー – JeepFreak

+0

@JeepFreakこの場合、最初のページに表示されます。他の多くの場合は、サブセットのみを表示するか、表示しません。内部的にのみ使用します。私の要点は、 '$ _POST 'の目的は、クライアントからサーバーへのユーザー入力を提供することであるということです。 '$ _SESSION'のポイントは、サーバー側のクライアントのページロード間でデータを保持することです。それはまさにあなたの状況です。 –

+0

私は見る。説明してくれてありがとう。セッションは簡単に実装することができます。このページは私だけが使用し、情報はセキュリティ上の懸念を引き起こさないため、おそらく最も理にかなっています。変数を設定したら、変数を設定解除します。もう一度おねがいします@Michael – JeepFreak

0

この場合、各ページで独自のクエリを使用することをお勧めします。多くの情報がある場合は、POSTの新しいページにデータを失う可能性があります。ところで、クエリとそのデータグリッドを変更して変更することはできません。

一方、たくさんのデータをPHPセッションのに保存することは、データがあまりにも多い場合はあまり簡単ではありません。さらに、毎回セッションを扱う際のセキュリティ上のリスクに注意する必要があります。

しかし、いくつかの情報があると、PHPセッションを使用することは良い考えです。また、情報を変更する必要がない場合は、jQueryを使用して情報テーブルからコピーを取り出し、window.open機能を使用して新しいウィンドウで印刷することができます。

これらは私の考えと解決策であることを忘れないでください。他の人のコメントも読んでください。

+0

応答@モハマドありがとう!あなたの意見では、どのくらいのデータがセッション変数の "たくさん"ですか? – JeepFreak

+0

JeepFreak、絶対に私はどれくらいのデータが "たくさん"あるのか分かりません。それはあなたが知っているように数えることはできません...しかし、約100のレコードとそれぞれのフィールドとして5項目があると想像してください。これらの500の値に対して 'sessions'を作成するのは簡単ですか?その後、もう一度それらを読んでください...? –

関連する問題