分享一個php數據庫分頁類,php 讀取數據庫內容 前台分頁

本文目錄一覽:

求PHP各種分頁方法,各位大仙有的別藏了~~

PHP分頁方法:

第一步創建一個類 subPages.php?php

class SubPages{

private $each_disNums;//每頁顯示的條目數

private $nums;//總條目數

private $current_page;//當前被選中的頁

private $sub_pages;//每次顯示的頁數

private $pageNums;//總頁數

private $page_array = array();//用來構造分頁的數組

private $subPage_link;//每個分頁的鏈接

private $subPage_type;//顯示分頁的類型

//__construct是SubPages的構造函數,用來在創建類的時候自動運行. //@$each_disNums 每頁顯示的條目數 // @nums 總條目數 // @current_num 當前被選中的頁 //@sub_pages 每次顯示的頁數 // @subPage_link 每個分頁的鏈接 //@subPage_type 顯示分頁的類型 //當@subPage_type=1的時候為普通分頁模式 example: 共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁] //當@subPage_type=2的時候為經典分頁樣式 example: 當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]

function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){

//intval通過使用特定的進制轉換(默認是十進制),返回變量 var 的 integer 數值

$this-each_disNums=intval($each_disNums);

$this-nums=intval($nums);

if(!$current_page){

$this-current_page=1;

}else{

$this-current_page=intval($current_page);

}

$this-sub_pages=intval($sub_pages);

$this-pageNums=ceil($nums/$each_disNums);

$this-subPage_link=$subPage_link;

$this-show_SubPages($subPage_type);

//echo $this-pageNums.”–“.$this-sub_pages;

}

//__destruct析構函數,當類不在使用的時候調用,該函數用來釋放資源

function __destruct(){

unset($each_disNums);

unset($nums);

unset($current_page);

unset($sub_pages);

unset($pageNums);

unset($page_array);

unset($subPage_link);

unset($subPage_type);

}

//show_SubPages函數用在構造函數裏面。而且用來判斷顯示什麼樣子的分頁

function show_SubPages($subPage_type){

if($subPage_type == 1){

$this-subPageCss1();

}elseif ($subPage_type == 2){

$this-subPageCss2();

}

}

//用來給建立分頁的數組初始化的函數。

function initArray(){

for($i=0;$i$this-sub_pages;$i++){

$this-page_array[$i]=$i;

}

return $this-page_array;

}

//construct_num_Page該函數使用來構造顯示的條目

// 即使:[1][2][3][4][5][6][7][8][9][10]

function construct_num_Page(){

if($this-pageNums $this-sub_pages){

$current_array=array();

for($i=0;$i$this-pageNums;$i++){

$current_array[$i]=$i+1;

}

}else{

$current_array=$this-initArray();

if($this-current_page = 3){

for($i=0;$icount($current_array);$i++){

$current_array[$i]=$i+1;

}

}elseif ($this-current_page = $this-pageNums $this-current_page $this-pageNums – $this-sub_pages +1 ){

for($i=0;$icount($current_array);$i++){

$current_array[$i]=($this-pageNums)-($this-sub_pages)+1+$i;

}

}else{

for($i=0;$icount($current_array);$i++){

$current_array[$i]=$this-current_page-2+$i;

}

}

}

return $current_array;

}

//構造普通模式的分頁

//共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁]

function subPageCss1(){

$subPageCss1Str=””;

$subPageCss1Str.=”共”.$this-nums.”條記錄,”;

$subPageCss1Str.=”每頁顯示”.$this-each_disNums.”條,”;

$subPageCss1Str.=”當前第”.$this-current_page.”/”.$this-pageNums.”頁 “;

if($this-current_page 1){

$firstPageUrl=$this-subPage_link.”1″;

$prewPageUrl=$this-subPage_link.($this-current_page-1);

$subPageCss1Str.=”[a href=’$firstPageUrl’首頁/a] “;

$subPageCss1Str.=”[a href=’$prewPageUrl’上一頁/a] “;

}else {

$subPageCss1Str.=”[首頁] “;

$subPageCss1Str.=”[上一頁] “;

}

if($this-current_page $this-pageNums){

$lastPageUrl=$this-subPage_link.$this-pageNums;

$nextPageUrl=$this-subPage_link.($this-current_page+1);

$subPageCss1Str.=” [a href=’$nextPageUrl’下一頁/a] “;

$subPageCss1Str.=”[a href=’$lastPageUrl’尾頁/a] “;

}else {

$subPageCss1Str.=”[下一頁] “;

$subPageCss1Str.=”[尾頁] “;

}

echo $subPageCss1Str;

}

//構造經典模式的分頁

//當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]

function subPageCss2(){

$subPageCss2Str=””;

$subPageCss2Str.=”當前第”.$this-current_page.”/”.$this-pageNums.”頁 “;

if($this-current_page 1){

$firstPageUrl=$this-subPage_link.”1″;

$prewPageUrl=$this-subPage_link.($this-current_page-1);

$subPageCss2Str.=”[a href=’$firstPageUrl’首頁/a] “;

$subPageCss2Str.=”[a href=’$prewPageUrl’上一頁/a] “;

}else {

$subPageCss2Str.=”[首頁] “;

$subPageCss2Str.=”[上一頁] “;

}

$a=$this-construct_num_Page();

for($i=0;$icount($a);$i++){

$s=$a[$i];

if($s == $this-current_page ){

$subPageCss2Str.=”[span style=’color:red;font-weight:bold;'”.$s.”/span]”;

}else{

$url=$this-subPage_link.$s;

$subPageCss2Str.=”[a href=’$url'”.$s.”/a]”;

}

}

if($this-current_page $this-pageNums){

$lastPageUrl=$this-subPage_link.$this-pageNums;

$nextPageUrl=$this-subPage_link.($this-current_page+1);

$subPageCss2Str.=” [a href=’$nextPageUrl’下一頁/a] “;

$subPageCss2Str.=”[a href=’$lastPageUrl’尾頁/a] “;

}else {

$subPageCss2Str.=”[下一頁] “;

$subPageCss2Str.=”[尾頁] “;

}

echo $subPageCss2Str;

}

}

?要做分頁的頁面?php//每頁顯示的條數

$page_size=2;

//得到當前是第幾頁

$pageCurrent=$_GET[“p”];

$offet =($pageCurrent-1)*$page_size;

//建立數據庫連接

$conn = mysql_connect(“地址”,”用戶名”,”密碼”) or die(“”.mysql_error());

//設置字符集

mysql_query(“set names gbk”);

//設置數據庫

mysql_select_db(“數據庫名”,$conn) or die(“”.mysql_error());

if($conn) { include (“query.html”);

//查詢會員信息//注:這裡的sql查詢了兩遍.第一遍是確定查詢出來的總數據條數

$query_sql = “SELECT * FROM user_info_t order by id desc”;//第二遍是根據需要即$page_size來確定每次查出的條數

$query_sql_sec= “SELECT * FROM user_info_t order by id desc limit $offet,$page_size”;

//執行查詢語句 返回一個結果集

$query_res = mysql_query($query_sql,$conn);

$query_res_sec = mysql_query($query_sql_sec,$conn);

//查詢列數

//$query_cols = mysql_num_fields($query_res);

//查詢行數

$query_num =mysql_num_rows($query_res);

//返回根據從結果集取得的行生成的數組,如果沒有更多行

echo “table border=’0′ cellpadding=’1′ cellspacing=’2′ width=’100%’ bgcolor=’#FFFFFF'”;

while($query_row = mysql_fetch_array($query_res_sec)) {

echo “tr”;

for ($i=0;$i$query_cols;$i++) {

echo “td bordercolor=’#A2BEE1′ bgcolor=’#A2BEE1′ width=’8%'”.$query_row[$i].”/td\n”;

}

echo “td bordercolor=’#A2BEE1′ bgcolor=’#A2BEE1′ width=’8%'”;

//echo “input type=’button’ class=’button’ id=’modify_record’ name=’modify_record’ value=’修改’ /”;

echo”button onClick=\”submit(location.href=’../modify/modify.php?rec_id=$query_row[0]’);\”class=\”button\”;修改/button”;

//echo “ahref=’../delete/delete.php?rec_id=$query_row[0]’onClick=\”if(confirm(‘確實要刪除此條記錄嗎?’)) return true;else returnfalse;\”img src=\”../image/delete.gif\” align=\”absmiddle\”/刪除/a”;

echo “buttononClick=\”if(confirm(‘確實要刪除此條記錄嗎?’)) return submit(location.href=’../delete/delete.php?rec_id=$query_row[0]’);else return false;\”class=\”button\”;刪除/button”;

echo “/td”;

echo “/tr”;

}

//echo “/form”;

echo “/table”;

require_once(“../common/subPages.php”);//總條目數為數據庫中查詢出的數據條數

$nums=$query_num;

//每次顯示的頁數

$sub_pages=10; //if(!$pageCurrent) $pageCurrent=1;

//調用類SubPages 傳的參數為:每頁顯示條數/當前第幾頁/每次顯示的頁數/分頁模式

$subPage=new SubPages($page_size,$nums,$pageCurrent,$sub_pages,”query.php?p=”,1);

}else{

die(‘數據庫連接異常: ‘.mysql_error());

}

//斷開數據庫連接

if ($conn)

{

mysql_close($conn);

}

?

php分頁功能怎麼實現

php本身是沒有分頁概念的,分頁是URL傳參,然後通過mysql查詢語句到數據庫獲取數據,然後實現的分頁,url上的參數,通過PHP的$_GET都是可以獲取到的。

現在市面上的PHP框架基本都有PHP分頁類,參照文檔直接調用就好了,如果想看實現過程,可以去下載一個TP框架,然後打開裏面的分頁類查看裏面的源代碼。

又一個php 分頁類實現代碼

複製代碼

代碼如下:

?php

function

genpage($sql,$page_size=10)

{

global

$pages,$sums,$eachpage,$page;

//總頁數,總記錄,每頁數,當前頁

$page

=

$_GET[“page”];

if($page

==0)$page

=1;

$eachpage

=

$page_size;

$pagesql

=

strstr($sql,”

from

“);

$pagesql

=

“select

count(*)

as

ids

“.$pagesql;

$conn

=

mysql_query($pagesql)

or

die(mysql_error());

if($rs

=

mysql_fetch_array($conn))$sums

=

$rs[0];

$pages=ceil($sums/$eachpage);

if($pages==0)$pages=1;

$startpos

=

($page-1)*$eachpage;

$sql

.=”

limit

$startpos,$eachpage

“;

}

//顯示分頁

function

showpage()

{

global

$pages,$sums,$eachpage,$page;

//總頁數,總記錄,每頁數,當前頁,其它參數

$link=$_SERVER[‘PHP_SELF’];

echo

“記錄”.$sums.”:”.$eachpage.” ”;

echo

“頁數”.$page.”/”.$pages.” ”;

$p_head=$page-5;

if($p_head=0)$p_head=1;

//頁碼循環開始數

前5個

$p_end=$page+5;

if($p_end$pages)$p_end=$pages;

//頁碼循環結束數

後5個

echo

“[a

href=$link?page=1首頁/a]

“;

for($i=$p_head;$i=$p_end;$i++)

{

if($i!=$page)

echo

“a

href=$link?page=$i[$i]/a

“;

else

echo

“bstrike[$i]/strike/b

“;

}

echo

[a

href=$link?page=$pages末頁/a]”;

}

?

ThinkPHP使用心得分享-分頁類Page的用法

ThinkPHP中的Page類在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page類:

複製代碼

代碼如下:

import(‘ORG.Util.Page’);

//Page類的引入

$db

=

M(‘abc’);//實例化數據表abc

$where

=

array(

‘id’=’2’;

);//條件語句$where,例表中字段id的值為2

$count

=

$db-where($where)-count();//獲取符合條件的數據總數count

$page

=

new

Page($count,

10);//實例化page類,傳入數據總數和每頁顯示10條內容

$limit

=

$page-firstRow

.

‘,’

.

$page-listRows;//每頁的數據數和內容$limit

$result

=$db-where($where))-limit($limit)-select();//分頁查詢結果

$this-result

=

$result;//賦值

$this-show

=

$page-show();//獲取分頁的底部信息

以上代碼是分頁類實現的基本語句,當然喜歡使用原生sql語句的朋友也可以配合原生sql語句實現查詢分頁:

複製代碼

代碼如下:

import(‘ORG.Util.Page’);

//Page類的引入

$db

=

M(‘abc’);//實例化數據表abc

$where

=

array(

‘id’=’2’;

);//條件語句$where,例表中字段id的值為2

$count

=

$db-where($where)-count();//獲取符合條件的數據總數count

$page

=

new

Page($count,

10);//實例化page類,傳入數據總數和每頁顯示10條內容

$Modle

=

new

Model();//實例化新數據模型

$sql

=

‘select

id,name

from

abc

where

‘.$where.’

limit

‘.$page-firstRow.’,’.$page-listRows;//sql語句

$result

=

$Modle-query($sql);//執行sql語句

$this-result

=

$result

$this-show=$page-show();

當然,分佈查詢獲取的內容也可以先對查詢完的數據進行處理再賦值,比如

複製代碼

代碼如下:

$result

=$db-where($where))-limit($limit)-select();//分頁查詢結果

$res

=

abc($result);//abc方法(自定義方法或php函數)對結果$result進行數據排序或重組處理等

$this-result

=

$res;//賦值

這個簡單的PHP分頁類,該如何調用?感謝。~

0代表開始的下標,比如一頁顯示10條的話,那麼第一頁就是0,10,第二頁就是(2-1)*10,10,第三頁就是(3-1)*10,10

所以你那個0 就是寫 limit($page-1)*$pagenum,$pagenum

原創文章,作者:AQJI,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/133081.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AQJI的頭像AQJI
上一篇 2024-10-03 23:56
下一篇 2024-10-03 23:56

相關推薦

  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Python七年級內容用法介紹

    本文將從多個方面對Python七年級內容進行詳細闡述。 一、安裝Python 要使用Python進行編程,首先需要在計算機上安裝Python。Python可以在官網上免費下載。下載…

    編程 2025-04-29
  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • Python獲取Flutter上內容的方法及操作

    本文將從以下幾個方面介紹Python如何獲取Flutter上的內容: 一、獲取Flutter應用數據 使用Flutter提供的Platform Channel API可以很容易地獲…

    編程 2025-04-28
  • Python少兒編程的學習內容

    Python被譽為是最適合新手入門的編程語言之一,它簡潔易懂,同時涵蓋了廣泛的編程知識。Python的少兒編程課程也因其易學性和實用性越來越受到家長和孩子們的歡迎。接下來我們將從多…

    編程 2025-04-28
  • Think-ORM數據模型及數據庫核心操作

    本文主要介紹Think-ORM數據模型建立和數據庫核心操作。 一、模型定義 Think-ORM是一個開源的ORM框架,用於簡化在PHP應用中(特別是ThinkPHP)與關係數據庫之…

    編程 2025-04-27

發表回復

登錄後才能評論