有一個簡單的頁面,可以從MySQL獲取結果並將其顯示在表格中。我已經對結果啓用了分頁,並允許用戶設置每頁顯示的結果數。我傳遞兩個querystring值來處理這個:'page'和'count'。分頁結果:處理無效的傳遞數據
然後我使用這些值來計算我的MySQL查詢的LIMIT值,使用SQL_CALC_FOUND_ROWS
指令,然後通過調用SELECT FOUND_ROWS();
來獲得結果總數。這一切都很好。
現在,我想驗證查詢字符串值。由於我正在爲數組中的'count'的結果/頁面值存儲可能的「正確」值,因此我只檢查傳遞的'count'值是否在該數組中,並且如果沒有將其設置爲默認值。對於'頁面'值,我有一點心理障礙...爲了確定是否有任何結果傳遞'頁面',這意味着它是「正確的」,我需要去數據庫和首先找到結果計數,但由於我只想去分貝一次,我需要包括LIMIT's,這是基於傳遞的'page'值...雞和雞蛋。我對如何解決這個一對夫婦的想法:
運行查詢,如上面的編碼,如果((「頁」 - 1)*「計數」)的結果比從
SELECT FOUND_ROWS();
返回的值越大,重新運行查詢,並將新的LIMIT設置爲0,count。獲取完整的結果集,驗證傳遞的頁面是否正確,然後用LIMIT值從數據庫中進行另一次拉取。
我寧願不回到數據庫,但正如我剛纔提到的,在這個相當普遍的問題上有一個心理障礙。
感謝,
保羅