亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP+Mysql開發(fā)分頁之頁碼分頁

<html>
 <head>
     <meta http-equiv="CONTENT-TYPE" content="text/html;">
 </head>
 <body>
 <?php
 /** 1.傳入頁面 **/
 $page = $_GET['p'];
 /** 2.根據(jù)頁面取出數(shù)據(jù):php->mysql **/
 $host = "localhost";
 $username = 'root';
 $password = '123456789';
 $db = 'bbs2';
 $PageSize=5;
 $ShowPage=3;
 //連接數(shù)據(jù)庫
 $conn = mysql_connect($host, $username, $password);
 if(!$conn){
     echo "數(shù)據(jù)庫連接失敗";
     exit;
 }
 
 //選擇所要操作的數(shù)據(jù)庫
 mysql_select_db($db);
 //設(shè)置數(shù)據(jù)庫編碼格式
 mysql_query('SET NAMES UTF8');
 //編寫sql獲取分頁數(shù)據(jù):SELECT * FROM 表名 LIMIT 起始位置 , 顯示條數(shù)
 $sql = "SELECT*FROM test LIMIT ".($page-1)*$PageSize .",$PageSize";
 if(!$sql){
     echo "取出不成功";
 };
 //把sql語句傳送到數(shù)據(jù)庫
 $result = mysql_query($sql);
 //處理我們的數(shù)據(jù)
 echo "<table border=1 cellspacing=0 width=15% >";
 echo "<tr><td>ID</td><td>名字</td><td>性別</td></tr>";
 while($row = mysql_fetch_assoc($result)){
     echo "<tr>";
     echo "<td>{$row['id']}</td>";
     echo "<td>{$row['name']}</td>";
     echo "<td>{$row['sex']}</td>";
     echo "<tr>";
 }
 echo "</table>";
 //釋放結(jié)果
 mysql_free_result($result);
 //獲取數(shù)據(jù)總數(shù)
 $to_sql="SELECT COUNT(*)FROM test";
 $to_result=mysql_fetch_array(mysql_query($to_sql));
 $to=$to_result[0];
 //計算頁數(shù)
 $to_pages=ceil($to/$PageSize);
 mysql_close($conn);
 /** 3.顯示數(shù)據(jù)+分頁條 **/
 $page_banner="";
 //計算偏移量
 $pageffset=($ShowPage-1)/2;
 if($page>1){
     $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=1'>首頁</a>";
     $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一頁</a>";
 }
 //初始化數(shù)據(jù)
 $start=1;
 $end=$to_pages;
 if ($to_pages>$ShowPage){
     if($page>$pageffset+1){
         $page_banner.="...";
     }
     if ($page>$pageffset){
         $start=$page-$pageffset;
         $end=$to_pages>$page+$pageffset?$page+$pageffset:$to_pages;
     }else{
         $start=1;
         $end=$to_pages>$ShowPage?$ShowPage:$to_pages;
     }
     if ($page+$pageffset>$to_pages){
         $start=$start-($page+$pageffset-$end);
     }
 }
 for($i=$start;$i<=$end;$i++){
     $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($i)."'>{$i}</a>";
 }
 //尾部省略
 if ($to_pages>$ShowPage&&$to_pages>$page+$pageffset){
     $page_banner.="...";
 }
 if ($page<$to_pages){
     $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一頁</a>";
     $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($to_pages)."'>尾頁</a>";
 }
 
 $page_banner.="共{$to_pages}頁";
 echo $page_banner;
 ?>
 </body>
 </html>

當(dāng)資料過多時,頁碼也會過長,這時候需要隱藏頁碼來起到美觀的效果

程式碼解釋

QQ截圖20161026153352.png

##$ ShowPage=3; 我們只顯示3個頁碼

$pageffset=($ShowPage-1)/2;頁面偏移量? 我們顯示3個頁碼減去1除2得到1 就代表前面一個後面一個分別偏移。

$start=1;
 $end=$to_pages;
 if ($to_pages>$ShowPage){
     if($page>$pageffset+1){
         $page_banner.="...";
     }

總頁數(shù)大於顯示的頁數(shù),且當(dāng)前頁大於偏移量+1顯示...省略


    if ($page>$pageffset){
         $start=$page-$pageffset;
         $end=$to_pages>$page+$pageffset?$page+$pageffset:$to_pages;

$start起始位置如果目前頁大於偏移量,那麼起始位置顯示目前頁減去偏移量

$end結(jié)束位置如果總頁數(shù)大於目前頁加偏移量那麼結(jié)束位置就是目前頁加上偏移量,如果不大於就顯示最後一條


else{
         $start=1;
         $end=$to_pages>$ShowPage?$ShowPage:$to_pages;
     }

如果當(dāng)前頁小於偏移量,起始位置是1


結(jié)束位置目前頁大於顯示的頁數(shù)如果大於就顯示目前顯示的頁數(shù),否則就顯示總頁數(shù)

    if ($page+$pageffset>$to_pages){
         $start=$start-($page+$pageffset-$end);

???????? 若頁數(shù)加偏移量大於最後一頁,起始位置等於原本應(yīng)該的起始位置減去目前頁加偏移量減去結(jié)束位置。

}
 for($i=$start;$i<=$end;$i++){
     $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($i)."'>{$i}</a>";
 }

顯示頁碼數(shù)


//尾部省略
 if ($to_pages>$ShowPage&&$to_pages>$page+$pageffset){
     $page_banner.="...";
 }

當(dāng)總頁數(shù)大於顯示的頁數(shù)且最後一頁大於目前頁加偏移量,就省略

繼續(xù)學(xué)習(xí)
||
<html> <head> <meta http-equiv="CONTENT-TYPE" content="text/html;"> </head> <body> <?php /** 1.傳入頁面 **/ $page = $_GET['p']; /** 2.根據(jù)頁面取出數(shù)據(jù):php->mysql **/ $host = "localhost"; $username = 'root'; $password = '123456789'; $db = 'bbs2'; $PageSize=5; $ShowPage=3; //連接數(shù)據(jù)庫 $conn = mysql_connect($host, $username, $password); if(!$conn){ // echo "數(shù)據(jù)庫連接失敗"; exit; } //選擇所要操作的數(shù)據(jù)庫 mysql_select_db($db); //設(shè)置數(shù)據(jù)庫編碼格式 mysql_query('SET NAMES UTF8'); //編寫sql獲取分頁數(shù)據(jù):SELECT * FROM 表名 LIMIT 起始位置 , 顯示條數(shù) $sql = "SELECT*FROM test LIMIT ".($page-1)*$PageSize .",$PageSize"; if(!$sql){ echo "取出不成功"; }; //把sql語句傳送到數(shù)據(jù)庫 $result = mysql_query($sql); //處理我們的數(shù)據(jù) echo "<table border=1 cellspacing=0 width=15% >"; echo "<tr><td>ID</td><td>名字</td><td>性別</td></tr>"; while($row = mysql_fetch_assoc($result)){ echo "<tr>"; echo "<td>{$row['id']}</td>"; echo "<td>{$row['name']}</td>"; echo "<td>{$row['sex']}</td>"; echo "<tr>"; } echo "</table>"; //釋放結(jié)果 mysql_free_result($result); //獲取數(shù)據(jù)總數(shù) $to_sql="SELECT COUNT(*)FROM test"; $to_result=mysql_fetch_array(mysql_query($to_sql)); $to=$to_result[0]; //計算頁數(shù) $to_pages=ceil($to/$PageSize); mysql_close($conn); /** 3.顯示數(shù)據(jù)+分頁條 **/ $page_banner=""; //計算偏移量 $pageffset=($ShowPage-1)/2; if($page>1){ $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=1'>首頁</a>"; $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一頁</a>"; } //初始化數(shù)據(jù) $start=1; $end=$to_pages; if ($to_pages>$ShowPage){ if($page>$pageffset+1){ $page_banner.="..."; } if ($page>$pageffset){ $start=$page-$pageffset; $end=$to_pages>$page+$pageffset?$page+$pageffset:$to_pages; }else{ $start=1; $end=$to_pages>$ShowPage?$ShowPage:$to_pages; } if ($page+$pageffset>$to_pages){ $start=$start-($page+$pageffset-$end); } } for($i=$start;$i<=$end;$i++){ $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($i)."'>{$i}</a>"; } //尾部省略 if ($to_pages>$ShowPage&&$to_pages>$page+$pageffset){ $page_banner.="..."; } if ($page<$to_pages){ $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一頁</a>"; $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($to_pages)."'>尾頁</a>"; } $page_banner.="共{$to_pages}頁"; echo $page_banner; ?> </body> </html>
提交重置程式碼