php分页函数

可以直接引用该函数实现分页效果。

每页显示条数,按钮数都可以自定义。

请自行添加css样式。

使用该函数之前首先需要连接数据库,并选择表。

分页中的按钮实现,最重要的是确定起始按钮和结束按钮的序号,之后从起始序号到结束序号依次输出。


function paging($per_num=2,$bt_num=4,$tb="contents",$field_name="contents"){
 //$per_num 每页显示的记录数
 //$bt_num 想要显示的按钮数 
 //$tb 表名
 //$field_name 按字段contents升序排列
$total_num = mysql_num_rows(mysql_query("select * from $tb"));	//总共的记录条数
$pages = ceil($total_num / $per_num);	//总页数
if (!isset($_GET['page'])){		//如果参数page不存在
	$page = 1;
}elseif(!is_numeric($_GET['page'])){	//参数存在,但不为数字
	exit("参数错误!");
}else									//参数存在且为数字
{
	$page = floor($_GET['page']);		//向下取整
	$page = $page > $pages ? $pages : $page;		//参数page大于总页数,则page的值为总页数
	$page = $page < 1 ? 1 : $page;
	//参数page小于总页数,则page的值为总页数
}
//确定起始按钮序号和结束按钮序号
if ($bt_num % 2 != 0){		//按钮数为奇数
	$start_num = $page - floor($bt_num / 2);	
	$end_num = $page + floor($bt_num / 2);		
}else{						//按钮数为偶数
	$start_num = $page -($bt_num / 2) + 1;
	$end_num = $page + ($bt_num / 2);
}

if ($start_num < 1){		//起始按钮序号小于1,则为1
	$start_num = 1;
}
if ($end_num > $pages){		//结束按钮序号大于总页数,则值为总页数
	$end_num = $pages;
}

$curpagenum = $end_num - $start_num + 1;	//当前状态下的按钮数

if ($curpagenum < $bt_num && $start_num > 1)	//左调整
{
	$start_num -= ($bt_num - $curpagenum);
	$start_num < 1 ? 1 : $start_num;
}

if ($curpagenum < $bt_num && $end_num < $pages)		//右调整
{
	$end_num += ($bt_num - $curpagenum);
	$end_num > $pages ? $pages : $end_num;
}

$start = ($page - 1) * $per_num ;		//开始的记录序号,即从第几条记录开始查询

$sql = "select * from $tb order by $field_name asc limit $start,$per_num";
mysql_query("set names utf8");
$query = mysql_query($sql);
$results = mysql_fetch_array($query);

do {
	//
	//循环输出的代码,如:
	//echo "
" //echo $results['content']; //echob "
"; // //content为表中的字段名 // }while ($results = mysql_fetch_array($query)); if ($start_num != 1) //如果起始按钮的序号不为1,显示“首页” { echo " 首页"; } for ($i=$start_num;$i<=$end_num;$i++) //循环打印按钮 { if ($page == $i) //当前页为span标签 { echo " ".$i.""; }else{ echo " ".$i.""; } } if ($end_num != $pages) //如果结束按钮的序号不为总页数的值,显示“尾页” { echo " 尾页"; } }



你可能感兴趣的:(php,php,分页)