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

新聞開發(fā)之分頁功能

分頁幾乎是每個網(wǎng)站都會使用的功能,因為如果內(nèi)容很多,不用分頁的話,頁面顯示會很長很長,使用和查找起來會非常麻煩,所以我們來講下這個很實用的功能。

分頁的整體想法:

分頁就是將資料庫中所有的資訊以固定的數(shù)量分成若干段,所以這裡需要兩個資料:

每頁顯示的資訊條數(shù)$limitPage

取得目前的分頁數(shù)$Page?


#由於電腦語言預設(shè)從0開始取得記錄

如果設(shè)定每頁顯示數(shù)量為5,$limitPage = 5,

那麼第一頁$page = 1 就會顯示0, 1, 2 ?, 3 , 4三筆記錄

第二頁$page = 2?就會顯示5 , 6 , 7 , 8 , 9 , 10 ?三筆記錄

第三頁?$page = 3?就會顯示11, 12, 13 , 14 , 15 三筆記錄

以此類推。 。 。 。 。 。 。 。 。

設(shè)定一個參數(shù)$limitFrom 從第幾個資料開始讀取

從上面的規(guī)律就可以得到:

$limitFrom = ($page - 1) * $ limitPage;

就會分別從第0 ,5, 11條開始取得資料。


接下來就是連接資料庫,並統(tǒng)計總的新聞條數(shù):

<?php
$link = mysqli_connect('localhost','uesrname','password','news');
$sql = "select * from new";  //  select * from表示獲取全部字段的值
$sqlCount = "select count(*) from new";    //count(*)是計算數(shù)據(jù)總的條數(shù)
$retQuery = mysqli_query($link, $sqlCount);  //查詢數(shù)量sql語句
$retCount = mysqli_fetch_array($retQuery);   //獲取數(shù)量
$count = $retCount[0]?$retCount[0]:0;   //判斷獲取的新聞數(shù)量
$countNews = $count;
?>

接著,我們給一個變數(shù)$countPage用來表示總共顯示了多少頁

可能我們時長會遇到這樣的情況,假如有100條信息,我們給定的是每頁顯示11個,剩下的1條如何處理呢,

那我們就要用%進行取餘來判斷:

<?php
$countPage = $countNews%$limitPage;   //求余數(shù)獲取分頁數(shù)量能否被除盡
if(($countPage) > 0) {  //獲取的頁數(shù)有余
  $countPage = ceil($countNews/$limitPage);    
// ceil() 函數(shù)向上舍入為最接近的整數(shù),除不盡則取整數(shù)+1頁, 100個新聞每個頁面顯示11個,成9個頁面,剩余1個單獨成1個頁面,這樣總共有10個頁面
} else {
  $countPage = $countNews/$limitPage;  //如果是10個新聞每個頁面顯示2個,成5個頁面
}
?>

其他參數(shù)上一頁$prev,下一頁$next;

##在分頁功能中常常會有點選「上一頁」和點選「下一頁」進行跳轉(zhuǎn)

先說一下PHP程式碼功能實現(xiàn)想法:

上一頁$prev,就是目前頁$ page -1 一步一步往前頁跳轉(zhuǎn),噹噹前頁$page為第一頁的時候再往前跳轉(zhuǎn)就為第0頁了,這顯然會出現(xiàn)bug,

這裡我們就需要給它一個設(shè)定,當當前頁$page為第一頁的時候點擊「上一頁」就設(shè)定它顯示為第一頁,不在往前跳轉(zhuǎn)了。

$prev = ($page - 1 <= 0 )?1:$page-1;


下一頁$next,?就是目前頁$page -1 一步一步往後頁跳轉(zhuǎn),問題在於當$page為最後一頁的時候點擊「下一頁」再往後跳轉(zhuǎn),

跟上一頁類似,我們設(shè)定它就顯示最後一頁。

$next = ($page + 1 > $countPage)?$countPage:$page+1;


//目前頁數(shù)要大於總頁數(shù)的時候就顯示目前頁。

<!DOCTYPE html>
<html>
<head>  
<meta charset=utf8">  
<title>分表頁</title>
</head>
<body>
   <div>
         <a href="?page=<?php echo $prev;?>">|上一頁</a>         
         <?php for($i=1; $i<=$countPage; $i++):?>         
         <a href="?page=<?php echo $i;?>"><?php echo $i;?></a>         
         <?php endfor;?>         
         <a href="?page=<?php echo $next;?>">|下一頁</a>
   </div>
</body>
</html>


#

繼續(xù)學習
||
<?php $link = mysqli_connect('localhost','usermane','password','test'); mysqli_set_charset($link, "utf8"); if (!$link) { die("連接失敗:".mysqli_connect_error()); } $page = isset($_GET['page'])?$_GET['page']:1;//獲取當前分頁數(shù) $limitNews = 5; //每頁顯示新聞數(shù)量 $countNews = ""; //總共有多少條新聞 $countPage = ""; //一共有多少頁數(shù) $limitFrom = ($page - 1) * $limitPage;//從第幾條數(shù)據(jù)開始讀記錄 //每頁顯示5個 //page = l limit 0 //page = 2 limit 5 //page = 3 limit 11 $sql = "select * from new"; $sqlCount = "select count(*) from new"; $retQuery = mysqli_query($link, $sqlCount); //查詢數(shù)量sql語句 $retCount = mysqli_fetch_array($retQuery); //獲取數(shù)量 $count = $retCount[0]?$retCount[0]:0; //判斷獲取的新聞數(shù)量 $countNews = $count; $countPage = $countNews%$limitPage; //求余數(shù)獲取分頁數(shù)量能否被除盡 if(($countPage) > 0) { //獲取的頁數(shù)有余 $countPage = ceil($countNews/$limitPage); // ceil() 函數(shù)向上舍入為最接近的整數(shù),除不盡則取整數(shù)+1頁, 100個新聞每個頁面顯示11個,成9個頁面,剩余1個成1個頁面 } else { $countPage = $countNews/$limitPage; } $prev = ($page - 1 <= 0 )?1:$page-1; //上一頁 $next = ($page + 1 > $countPage)?$countPage:$page+1; //下一頁 $result = mysqli_query($link, $sql); ?> <!DOCTYPE html> <html> <head> <meta charset=utf8"> <title>分頁</title> </head> <body> <div> <a href="?page=<?php echo $prev;?>">|上一頁</a> <?php for($i=1; $i<=$countPage; $i++):?> <a href="?page=<?php echo $i;?>"><?php echo $i;?></a> <?php endfor;?> <a href="?page=<?php echo $next;?>">|下一頁</a> </div> </body> </html>