2017-05-17 3 views
0

私は自分自身のPHP MVCウェブサイトを作成しています。PHPでMVCモデルクラスを正しく作成する

私はDBと復帰への接続を作成する機能を持っているモデルクラスを持っている私は、ビュー、モデル、およびコントローラを作成しましたが、私は私のクラスを使用してトラブルを抱えて、適切にオブジェクト...

ていますいくつかのデータを配列に格納します。この関数は、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とモデルの間のメディエータになるため、コントローラのデータを保持する責任を渡します。 –

関連する問題