php分页查询源码,php 分页类(源码+实例)

1,php分页类代码

/**

* php分页类

* by www.jbxue.com

*/

//定义错误级别

error_reporting(E_ALL);

//分页类

class pagination{

public $Start; // 开始mysql查询

public $End; // 结束mysql查询

private $Number; //分布数据的数量

public $Pages; // 页数

private $N_p_p; //每页要显示的内容数量

private $Page_number; //当前页数

private $Buttons; //最大显示的按钮数,即每页面中显示出的页数

function __construct($number,$n_p_p=10,$page_number=1,$buttons=5)

{

//page start from 1

$page_number = ($page_number<1) ? 1 : $page_number ;

$this-> Number = $number;

$this-> N_p_p = $n_p_p;

$this-> Pages = ceil ( $this-> Number / $this-> N_p_p ) ;

$this-> Buttons = $buttons ;

$page_number= ($page_number>$this->Pages) ? $this->Pages : $page_number ;

$this-> Page_number = $page_number ;

$this-> Ret() ;

}

public function Show_Pagination($link,$get='page',$div_class_name='pagination')

{

//if pages == 1 , no need to print pagination

if($this->Pages==1)return;

//$link is the addres of current page

//$get is name of get method

//echo pagination's div

echo'

';

//echo pre button

if($this->Page_number>1)echo '

else echo 'Per ';

//print button

$this->Buttons=(int)$this->Buttons;

$start_counter = $this->Page_number-floor($this->Buttons/2);//for normal mode

$end_conter = $this->Page_number+floor($this->Buttons/2);//for normal mode

//try to buttons exactly equal to $Buttons

if($start_counter<1) $end_conter=$end_conter+abs($start_counter);

if($end_conter>$this->Pages) $start_counter=$start_counter-($end_conter-$this->Pages);

if(($this->Page_number-floor($this->Buttons/2))<1)$end_conter ++;

for ($i=$start_counter;$i<=$end_conter;$i++)

{

if($i>$this->Pages || $i<1)continue; //no print less than 1 value or grater than totall page

if($i==$this->Page_number)echo ' '.$i.' '; // change current page' class

else echo '

else echo 'Nex ';

//close div tag

echo'

';

}

//give the page number and return start and end of selection

private function Ret()

{

$this->Start=(($this->Page_number-1)*$this->N_p_p);

$this->End= $this->N_p_p ;

}

}

2,分页类的示例一

/* style for show*/

.pagination{direction:ltr}

.pagination a{border-radius:3px;background-color:#eee;color:#555;border:1px solid #aaaaaa;padding-top:2px;padding-bottom:2px;

padding-right:5px;padding-left:5px;text-decoration:none;}

.pagination a:hover ,.pagination .cur{border-color:#0C52CE;color:#0C52CE;background-color:#fff;}

php分页类示例---www.jbxue.com

//include class:

require_once"pagination.php";

//get the numbet of current page

//note! you should safe it

if(isset($_GET['page'])){

$page=$_GET['page'];

}

else $page=1;

//connect to db ...

mysql_connect("localhost","root","");//use your host,username and password to connect to the db

mysql_select_db("dbname");//select your database

//run query to get number of all records

$query=mysql_query("select count(id) from table"); //raplace table with your table name

$totall=mysql_result($query,0);

//creat new object

$pagination=new pagination($totall,3 /*number of content per page*/,$page,5 /*number of button to show*/);

//get records of current page

$SecondQuery=mysql_query("select id from table order by id desc limit $pagination->Start , $pagination->End");

//echo your result

while($row=mysql_fetch_assoc($SecondQuery))

{

echo 'id='.$row['id'].'
';

}

//show pagination:

$pagination->Show_Pagination("ExampleMysql.php?param1=value1",'page','pagination');

?>

3,分页类的调用示例二

/* style for show*/

.pagination{direction:ltr}

.pagination a{border-radius:3px;background-color:#eee;color:#555;border:1px solid #aaaaaa;padding-top:2px;padding-bottom:2px;

|padding-right:5px;padding-left:5px;text-decoration:none;}

.pagination a:hover ,.pagination .cur{border-color:#0C52CE;color:#0C52CE;background-color:#fff;}

php分页类的调用示例-www.jbxue.com

//include分页类文件

require_once "pagination.php";

//param of url to specify page_number

$get_param='page';

//get current page from url

$current_page=(isset($_GET[$get_param]) && is_numeric($_GET[$get_param]))?$_GET[$get_param]:1;

//notice: when get param , youe should SAFE it

//get totall available content

// for example you can get number of news from news table in database ( mysql_num_rows or count())

$totall_content=120; // for example

//creat new cat object

$cat=new pagination($totall_content,10 /*number of content per page*/,$current_page,5 /*number of button*/);

//when you want to load content of page: for example in db queris :

// select * from table where conditions order by key limit $cat->Start , $cat->End

//for show :

$cat->Show_Pagination("example.php?",'page','pagination');

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值