PHP MYSQL 對資料庫內資料實現分頁顯示

2021-03-31 08:56:31 字數 3098 閱讀 9773

title : php + mysql 對資料庫內資料實現分頁顯示

author : stangly wrong

很多php的初學者,都對於web頁面的分頁顯示比較困惑,其實分頁顯示的原理非常簡單,今天又有人在**上問我這個問題。由於順手寫了這一小記,便於眾兄弟朋友翻閱。

問題:我的資料庫結構如下

create database book_list (

id int unsigned not null auto_increment,

name varchar(50) not null,

author varchar(50) not null,

primary key (id)

)id: 為書籍的id言標識,主鍵

name:書籍名稱

author:書書籍作者

本例資料表的比較簡單,主要是方便於解釋。

現在我們需要這樣分頁顯示這些資料,要求:資料表中已經有 11 條記錄,每頁顯示資料為 5 條,分多頁顯示。

根據要求現在分析一下,

第一頁顯示 0 - 4 條記錄

第二頁顯示 5 - 9 條記錄

第三頁顯示 10 - 14 條記錄

實際上可以得出如下結論,每次都需要從 $posion 條顯示,顯示數為 $pagesize ,在mysql中有這樣一條sql語句:

select *

from book_list

where 1

limit 0, 5

意思是從第 0 條記錄開始,讀取 5 條記錄。我們可以這一語句的特點來構建我們的函式,其實每次顯示時就是要確定 $posion 即可了。實現**如下:

$pageno = 3; //確實顯示第三頁

$posion = ($pageno - 1) * $pagesize; //計算從第幾條記錄讀取

//然後構建如下sql語句

$sql = 「select * from book_list where 1 limit $posion , $pagesize」;

即可以直接讀出要顯示的那一頁所有資料。

那麼下面即給乙個簡化版的分頁類,可以對任何的資料表進行分頁顯示的。以便拋磚引玉.

php:

class

page

$this

->

tablename        

= $t

; $this

->

pagesize         

= 10

; $this

->

pageno           = 1

; $this

->

pagenum          

= null

; $this

->

order_field    

=    

'1';

$this

->

order_type        

= 'desc'

} //設定頁大小

function

set_pagesize

( $p

= 10

) //設定當前頁碼

function

set_pageno

( $p

) //獲得總頁數

//        $t 為具體的表

function

get_pagenum

()

//獲得當前頁碼

function

get_pageno

()

//獲得當前分頁大小

function

get_pagesize

()

//獲得需要顯示的頁的起啟行號

function

get_posion

()

//讀取資料表的資料

//        $f 為需要讀取的字段列表

//        $c 為select語句的條件

// //        結果將返回到陣列內

// //        $data[0] = array (

//              fieldname    => value

//                .

//                .

//                .

//        )

// function

get_page

( $f

= '*'

, $c

= 1

) return

$data

; }

}

類呼叫示例

php:

$page

= new

page

( 'book_list'

); //設定頁大小為15頁

$page

->

set_pagesize(15

); //設定顯示的頁為第2頁

$page

->

set_pageno(2

); //讀取頁資料

//讀取書名和作者兩個字段

//條件是作者一定要是stangly的所有的記錄

$data

= $page

->

get_page

( "name, author"

, "author='stangly'"

); echo

"當前顯示第"

.$page

->

get_pageno

()."頁資料"

; foreach (

$data

as $key

=>

$var

)

備註:本程式沒有經過詳細測試,可能會存在有bug,還望您指出一二。

php mysql封裝 PHP中對資料庫操作的封裝

現在我們把其封裝在dbfz.inc中,其設計如下 60 class dbinte ce var dbid 1 用於確定當前操作的資料庫,當dbid為1代表mysql,當為 2代表 sql server,為3時為odbc或其它。var dbhost 資料庫所在主機網域名稱 var dbusername...

顯示資料庫內容

建立asp檔案後,include conn.asp檔案 然後就是 dim rs set rs server.createobject adodb.recordset rs.open select from 表名 cnn,1,1,adcmdtext rs就是記錄集。open後面是表名則最後引數為adc...

資料庫內 外連線

有兩個表a和表b。表a結構如下 aid int 標識種子,主鍵,自增id aname varchar 資料情況,即用select from a出來的記錄情況如下圖1所示 圖1 a表資料 表b結構如下 bid int 標識種子,主鍵,自增id bnameid int 資料情況,即用select fro...