ホームページ >バックエンド開発 >PHPチュートリアル >PHP ページングのアイデアを理解するための詳細な説明_PHP チュートリアル
PHP でのページングは、ページサイズ、カウント、ページ変数、合計ページ数、現在のページはどのページか、ページに表示するレコードの数など、いくつかの点を理解するだけで十分です。必要なのはそれを計算するための式だけです。
変数が 2 つだけあれば、戦いは半分になります:
各ページに表示されるレコードの数 $pageSize
テーブル内のデータの総量 $rowCount
上記 2 つの変数を使用すると、合計ページ数 $pageCount を取得できます
次にforループを通すと、例えば合計13ページある場合、forループを通して簡単にページ数を出力できます
コードは次のとおりです | コードをコピー |
$nav='';//ページ数を保存するために使用される変数 ($i=1;$i { $nav.="ページ「.$i.」 "; } |
ページ 1、ページ 2、ページ 3、ページ 4、ページ 5、ページ 6、ページ 7、ページ 8、ページ 9、ページ 10、ページ 11、ページ 12、ページ 13 ページ
一度に 10 ページだけを表示したい場合はどうすればよいでしょうか?たとえば、ページ 1 ~ 10、ページ 11 ~ 20
とても簡単で、for ループを少し変更するだけで実現できます
コードをコピー | |||||||||
コードをコピー | |||||||
コードをコピー | |
* * @著者シャオフェイ 2012/5/30 * @param $id ユーザー ID * @param $fenye ページングを処理するためにインスタンス化されたオブジェクト * @todo $sql1 ステートメント "select * from table where * limit 0,10" この SQL ステートメントは主にデータベース内のデータを取得し、ビュー レイヤーに表示するために使用されます * @todo $sql2 ステートメント "select count(id) from table" この SQL ステートメントはデータの総量を取得するために使用されます */ パブリック関数 showorder($id=null,$fenye=null) { $db = $this->getAdapter(); $select=$db->select(); $select->from(array('o' => 'order'),array('o.id','o.user_id','o.user_name','o.food_name','o.food_price ','o.order_time','o.order_state')); if ($id!=null){ $select->where('o.user_id=?',$id); } $select->join(array('d'=>'部門'),'o.dep_id = d.id','d.dep_name'); if($fenye!=null){ $select->limit($fenye->pageSize,($fenye->pageNow-1)*$fenye->pageSize); } $sql1=$select->__toString(); //この SQL ステートメントは主に総データ量を計算するために使用されます $sql2="「注文」から COUNT(id) を選択します $fenye->res_arr=$db->fetchAll($sql1);//簡単に呼び出せるように、表示するデータをページング クラスの $res_arr 属性に保存します $rowCount=$db->fetchAll($sql2);//テーブル内のデータの総量をページング クラスの rowCount 属性に保存します $fenye->rowCount=$rowCount[0]['COUNT(id)'] $fenye->getLink(); $fenye->res_arr を返します } ページングのコアコードを要約する コードは次のとおりです コードをコピー |
$this->pageCount=ceil(($this->rowCount/$this->pageSize)); $step= フロア(($this->pageNow-1)/10)*10+1;
http://www.bkjia.com/PHPjc/631620.html |
true
http://www.bkjia.com/PHPjc/631620.htmlPHP でのページングは、ページサイズ、カウント、ページ変数、合計ページ数、現在のページはどのページか、ページに表示するレコードの数など、いくつかの点を理解するだけで十分です。 ..