2017-05-17 20 views
0

我正在創建自己的php mvc網站。在php中正確創建一個MVC模型類

我所創建的視圖,模型和控制器,但我用我的班有麻煩和對象正確...

我有了一個函數來創建到數據庫並返回一個連接的模型類一些數據放入數組中。當訪問index.php時,該功能由控制器訪問。然後,我將數據抽出到帶有分頁的html表格中。

如果我點擊下一頁在我的分頁它然後去抓取模型相同的數組..然而,因爲該函數重新創建所有的sql似乎很冗餘..我知道這可能是一個基本的oo prgamming問題,但如何創建我的模型類,以便我可以重新使用陣列,而無需從頭開始創建它,每次我想抓住下一塊數據...

這裏是我的模型類的輪廓,我已經刪除了所有與db命令相關的代碼併爲了簡單起見而創建了該數組我如何構造類,以便創建數組一次,然後在需要時通過我的應用程序重用它。提前致謝。

<?php 
class Pagination_m extends CI_Model { 

     public $myarray = array(); 

     public function get_data() 
     { 


       //sql connection implemented 

       //Sql query executed 

       //create an array 

       //return the array to index.php 
       return $myarray; 

     } 

     public function get_array() 
     { 
       //all other pages clicked will just return the created array rather than doing all the database work again.. 

       return $myarray; 
     } 

} 

?> 

回答

0

您必須執行分頁結構。

我想你可以做'get_data'這個方法來接收一個參數來控制你的頁面,這個參數將改變你的SQL的LIMIT。從您的HTML接收該信息併發送給您的模型。爲沒有頁碼參數的每個調用準備好'get_data'獲取查詢的第一頁。

+0

感謝拉斐爾爲您的迴應,但我不太擔心我在這個階段如何實現分頁,但更多的是關於在應用程序的多個區域共享陣列而不回到數據庫。謝謝。 – Craigoh1

+0

所以,我想你想在多個HTTP請求中使用相同的加載數據。這是不可能的,因爲例如,php沒有Java這樣的應用程序上下文。爲了解決這個問題,你需要創建一個緩存文件,並且每次執行http請求時,應用程序都會再次將該數據存入數組中。或者如果你想在一次http請求的生命週期中共享這些數據,你可能會將你的數組轉換成一個靜態變量或者傳遞負責任的數據給你的控制器,因爲它將是UI和你的模型之間的中介。 –

相關問題