我有一個php頁面,可以從我的數據庫中抽取幾百個字符(分佈在8列中)。它顯示在第一頁上,但它也需要在第二頁上提供。我已經提交表單以便進行所述頁面轉換。從頁面到頁面的新mySQL查詢或POST信息?
什麼我不知道是如果它是更有效的(或首選的某些其他原因),從第一頁的POST數據到第二,或者我是否應該查詢每一個頁面的數據庫?在第一頁和第二頁上還有另一個查詢表,如果這有所作爲的話。
非常感謝!
比利
我有一個php頁面,可以從我的數據庫中抽取幾百個字符(分佈在8列中)。它顯示在第一頁上,但它也需要在第二頁上提供。我已經提交表單以便進行所述頁面轉換。從頁面到頁面的新mySQL查詢或POST信息?
什麼我不知道是如果它是更有效的(或首選的某些其他原因),從第一頁的POST數據到第二,或者我是否應該查詢每一個頁面的數據庫?在第一頁和第二頁上還有另一個查詢表,如果這有所作爲的話。
非常感謝!
比利
如果您已經在第一頁加載檢索到的數據的真正少量的,也可能是更有效的將其存儲在$_SESSION
而不是重新查詢它在隨後的pageloads。但是,您不應該通過$_POST
將其發佈到其他頁面,因爲這需要將所有數據發送到客戶端瀏覽器,並以HTML形式呈現爲某種形式,然後將其發送回$_POST
的服務器。 $_SESSION
是更好的選擇。
$_POST
的目的是爲用戶提供從客戶端到服務器的輸入,而$_SESSION
的目的是在服務器端的客戶端頁面加載之間保存數據。這正是你的情況。
始終,肯定知道的最好的辦法就是與像xdebug的工具來分析你的頁面加載。在$_SESSION
中重新查詢和存儲數據時的配置文件執行時間,以查看哪些更具有高性能。
我認爲在這種情況下,您最好在每個頁面上都有自己的查詢。如果你有很多信息,你可能會丟失一些數據,而你想POST他們到新的頁面。順便說一下,您將無法修改和更改您的查詢及其數據網格。
另一方面,如果您的數據太多,那麼在PHP會話中存儲大量數據並不容易。此外,您必須小心有關每次使用會話的安全風險。但是,當你提供一些信息時,使用PHP會話是一個好主意,正如Michael所說的那樣。此外,如果您確定不需要修改信息,則可以使用jQuery從信息表中獲取副本,然後使用window.open
函數在新窗口中打印它們。
不要忘記,這些只是我的想法和解決方案。請閱讀其他人的評論。
感謝@Mohammad的迴應!在你看來,會話變量有多少數據「很多」? – JeepFreak 2011-12-29 14:55:58
JeepFreak,絕對不能說有多少數據是「很多」。這是不可數的,因爲你知道...但想象一下,你有大約100條記錄和5項作爲他們的領域。你是否容易爲這500個值創建'會話',之後,再一次閱讀它們......? – 2011-12-29 20:59:09
「你不應該將其發佈到通過$ _ POST其他頁面,然而,因爲這需要在HTML中發送的所有數據到客戶端瀏覽器,並使其爲某種形式的那麼這將被髮送回至$ _POST中的服務器「。 無論如何,當我顯示數據時不會發生這種情況嗎?它正在兩頁上顯示。 謝謝你的迴應! Billy – JeepFreak 2011-12-29 04:38:43
@JeepFreak在這種情況下,您恰好會在第一頁上顯示它。在許多其他情況下,您只會顯示一個子集或不顯示任何內容,並僅在內部使用它。我的觀點是,我應該更清楚地說明,'$ _POST'的目的是爲用戶提供從客戶端到服務器的輸入。 '$ _SESSION'的意義在於在服務器端的客戶端頁面加載之間保存數據。這正是你的情況。 – 2011-12-29 11:47:33
我明白了,我明白了。謝謝你解釋。會話很容易實現,這個頁面只會被我使用,並且這些信息不會構成安全問題,所以這可能是最有意義的。當我完成它時,我將取消設置該變量。再次感謝@Michael – JeepFreak 2011-12-29 14:54:41