php分页例子
代码如下 |
复制代码 |
xmlns="http://www.w3.org/1999/xhtml">
php make page list
ID | title | include "conn.php";
$Page_size=10;
$result=mysql_query('select * from huazhuangpin');
$count = mysql_num_rows($result);
$page_count = ceil($count/$Page_size);
$init=1; $page_len=7; $max_p=$page_count; $pages=$page_count;
//判断当前页码
if(empty($_GET['page'])||$_GET['page']<0){ $page=1; }else { $page=$_GET['page']; }
$offset=$Page_size*($page-1);
$sql="select * from huazhuangpin limit $offset,$Page_size"; $result=mysql_query($sql);
while ($row=mysql_fetch_array($result)) { ?> | |
$key=' '; $key.=" $page/$pages "; //第几页,共几页 if($page!=1){ $key.=" 第一页 "; //第一页 $key.=" 上一页"; //上一页 }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.=" ".$i.""; } } if($page!=$pages){ $key.=" 下一页 ";//下一页 $key.=" 最后一页"; //最后一页 }else { $key.="下一页 ";//下一页 $key.="最后一页"; //最后一页 } $key.=' '; ?> |
|
分析此例子
代码片段一
代码如下 |
复制代码 |
$Page_size=10;
$result=mysql_query('select * from huazhuangpin');
$count = mysql_num_rows($result);
$page_count = ceil($count/$Page_size);
|
这代码是从数据库中先获取数据库总记录然后再利用$count/$Page_size(总记录除上每天多少条记录得出有多少页记录并且赋值给$page_coun
代码片段二
代码如下 |
复制代码 |
$offset=$Page_size*($page-1);
$sql="select * from huazhuangpin limit $offset,$Page_size"; $result=mysql_query($sql);
|
这代码核心部份是$offset=$Page_size*($page-1); 这个是利用我们获取的当前页面-1然后判断总记录在多少条再在sql中实现从X,y条记录读取limit $offset,$Page_size 这样就实现了分页获取记录了
代码片段三
代码如下 |
复制代码 |
if(empty($_GET['page'])||$_GET['page']<0){ $page=1; }else { $page=$_GET['page']; }
|
这段代码是获取page如果page为空就默认为第一页,否则就获取当前页面页码给$page变量以后面的程序作参考值处理。