PHP ページング コード呼び出し: $start=show_page($query,$page,$link,$offset); ここで、$start は開始レコード、$query は完全なレコード取得 SQL ステートメント、$page は現在のページ番号です。 , $link は渡されるページパラメータ $offset は各ページに表示されるレコード数です
- //======function.php======
- // ======ページング関数=== =======
- function show_page($query,$page,$link,$offset)
- {
- $db = new mysql();
- $result = $ db->query($query);
- $Page_size = $offset; //各ページに表示される注文の最大数を取得します
- $count = $db->affected_rows($result); //注文の合計数
- $page_count = ceil($count/$Page_size); / /総ページ数を計算します
- $init=1;
- $page_len=7;
- $max_p=$page_count;
- $pages=$page_count;
- //現在のページ番号を判定します
- $page=(empty($page )||$page<0)?1:$page;
- $start=$Page_size*($page-1);
- //ページング関数code
- $page_len = ($page_len%2)?$page_len:$ pagelen+1; //ページ番号の数
- $pageoffset = ($page_len-1)/2; //番号の左右のオフセットページ番号の数
- $key="$count in total";
- $key.="$ page/$pages " //何ページ、合計何ページ
- if($page!=1){
- $ key.="最初のページ " //最初のページ
- $key.="< a href="".$_SERVER['PHP_SELF']."?page=". ($page-1)."&$link">前のページ"; //前のページ
- }
- else
- {
- $key.="最初のページ";//最初のページ
- $key.="前のページ" //前のページ
- }
- if($pages>$page_len)
- {
- //現在のページの場合左オフセット以下です
- if($page<=$pageoffset ){
- $init=1;
- $max_p = $page_len;
- }
- else //現在のページが左オフセットより大きい場合
- {
- //現在のページ番号の右オフセットが最大ページ数を超えている場合
- if($page+$ pageoffset>=$pages+1){
- $init = $pages-$page_len+1;
- }
- else
- {
- //左右両方のオフセットが存在する場合の計算
- $init = $page-$pageoffset;
- $ max_p = $page+$pageoffset;
- }
- }
- }
- for($i=$init;$i< =$max_p;$i++)
- {
- if($i==$page){$key.=' ['.$i.']';}
- else {$key.=" ";}
- }
- if($page!=$ページ)
- {
- $key.=" 次のページ a> ";//次のページ
- $key.="最後のページ a>"; //最後のページ
- }
- else
- {
- $key.= "次のページ"; //次のページ
- $key.="最後のページ"; //最後のページ
- }
- echo "$key< BR>
";
- return $start;
- }
- ?>
コードをコピー
通話例
[コード]
|