php分頁處理功能是所有服務(wù)器腳本需要支持的一個功能,原理大概都是一樣的獲取當(dāng)前頁碼與記錄數(shù),然后再進(jìn)行一些計(jì)算之后獲取從起始與結(jié)束位置的內(nèi)容然后再利用php顯示出來即可,下面來看看這個分頁例子,后面我會詳細(xì)介紹.
php分頁例子,代碼如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.survivalescaperooms.com /TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html
- xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>php make page list</title>
- <style type="text/CSS">
- <!-- .page a:link { color: #0000FF; text-decoration: none; }
- .page a:visited { text-decoration: none; color: #0000FF; }
- .page a:hover { text-decoration: none; color: #0000FF; }
- .page a:active { text-decoration: none; color: #0000FF; }
- .page{color:#0000FF;} --> </style>
- </head>
- <body>
- <table width="530" height="103" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> <tr> <th width="30" height="38" bgcolor="#E3E3E3" scope="col">ID</th> <th width="500" bgcolor="#E3E3E3" scope="col">title</th> </tr> <?php /* * Created on 2010-4-17 * * Order by Kove Wong */ 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;
- //判斷當(dāng)前頁碼
- if(emptyempty($_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)) { ?> <tr> <td bgcolor="#E0EEE0" height="25px"><div align="center"> <?php echo $row['id']?> </div></td> <td bgcolor="#E0EEE"><div align="center"> <?php echo $row['title']?> </div></td> </tr> <?php } $page_len = ($page_len%2)?$page_len:$pagelen+1;//頁碼個數(shù) $pageoffset = ($page_len-1)/2;//頁碼個數(shù)左右偏移量
- $key='<div>'; $key.="<span>$page/$pages</span> "; //第幾頁,共幾頁 if($page!=1){ $key.="<a href=\"".$_SERVER['PHP_SELF']."?page=1\">第一頁</a> "; //第一頁 $key.="<a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\">上一頁</a>"; //上一頁 }else { $key.="第一頁 ";//第一頁 $key.="上一頁"; //上一頁 } if($pages>$page_len){ //如果當(dāng)前頁小于等于左偏移 if($page<=$pageoffset){ $init=1; $max_p = $page_len; }else{//如果當(dāng)前頁大于左偏移 //如果當(dāng)前頁碼右偏移超出最大分頁數(shù) if($page+$pageoffset>=$pages+1){ $init = $pages-$page_len+1; }else{ //左右偏移都存在時的計(jì)算 $init = $page-$pageoffset; $max_p = $page+$pageoffset; } } } for($i=$init;$i<=$max_p;$i++){ if($i==$page){ $key.=' <span>'.$i.'</span>'; } else { $key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".$i."\">".$i."</a>"; } } if($page!=$pages){ $key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\">下一頁</a> ";//下一頁 $key.="<a href=\"".$_SERVER['PHP_SELF']."?page={$pages}\">最后一頁</a>"; //最后一頁 }else { $key.="下一頁 ";//下一頁 $key.="最后一頁"; //最后一頁 } $key.='</div>'; ?> <tr> <td colspan="2" bgcolor="#E0EEE0"><div align="center"><?php echo $key?></div></td> </tr> </table>
- </body> </html>
分析此例子,代碼片段一,代碼如下:
- $Page_size=10;
- $result=mysql_query('select * from huazhuangpin');
- $count = mysql_num_rows($result);
- $page_count = ceil($count/$Page_size);
這代碼是從數(shù)據(jù)庫中先獲取數(shù)據(jù)庫總記錄然后再利用$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); 這個是利用我們獲取的當(dāng)前頁面-1然后判斷總記錄在多少條再在sql中實(shí)現(xiàn)從X,y條記錄讀取limit $offset,$Page_size 這樣就實(shí)現(xiàn)了分頁獲取記錄了.
代碼片段三,代碼如下:
- if(emptyempty($_GET['page'])||$_GET['page']<0){ $page=1; }else { $page=$_GET['page']; }//開源代碼Vevb.com
這段代碼是獲取page如果page為空就默認(rèn)為第一頁,否則就獲取當(dāng)前頁面頁碼給$page變量以后面的程序作參考值處理.
新聞熱點(diǎn)
疑難解答