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

如何實(shí)現(xiàn)分頁功能

上一章節(jié)我們完成了后臺的內(nèi)容展示html頁面的修改,這里就需要把數(shù)據(jù)庫的數(shù)據(jù)通過SQL語句查詢出來并在表中顯示。這里使用分頁功能來顯示,畢竟第一頁顯示的數(shù)目是有限的。

所謂分頁顯示,也就是將數(shù)據(jù)庫中的結(jié)果集人為的分成一段一段的來顯示,這里需要兩個初始的參數(shù):

每頁顯示數(shù)量:$limitNews

獲取當(dāng)前的分頁數(shù):$page

由于計算機(jī)語言默認(rèn)從0開始獲取記錄

如果設(shè)置每頁顯示數(shù)量為3,$limitNews = 3,

那么第一頁 $page = 1 就會顯示 0, 1, 2 ?三條記錄

第二頁?$page = 2?就會顯示 3, 4, 5 ?三條記錄

第三頁?$page = 3?就會顯示 6, 7, 8 三條記錄

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

設(shè)置一個參數(shù) $limitFrom 從第幾條數(shù)據(jù)開始讀取

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

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

就會分別從第0 ,3, 6條開始獲取數(shù)據(jù)。

通過查詢語句獲取數(shù)據(jù)庫表中的新聞總數(shù)量$countNews

<?php
$retQuery = mysqli_query($link, $sqlCount);  //查詢數(shù)量sql語句
$retCount = mysqli_fetch_array($retQuery);   //獲取數(shù)量
$count = $retCount[0]?$retCount[0]:0;   //判斷獲取的新聞數(shù)量
$countNews = $count;
?>

這里需要給到另一個參數(shù)$countPage 總共顯示多少頁

現(xiàn)在就出現(xiàn)另一個問題,如果有10條新聞紀(jì)錄,每頁顯示3條紀(jì)錄,那剩余的一條怎么辦?

我們就要使用%取余來進(jìn)行判斷:

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

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

在分頁功能中經(jīng)常會有點(diǎn)擊“上一頁”和點(diǎn)擊“下一頁”進(jìn)行跳轉(zhuǎn)

先說一下PHP代碼功能實(shí)現(xiàn)思路:

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

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

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

下一頁$next,?就是當(dāng)前頁$page -1 一步一步往后頁跳轉(zhuǎn),問題在于當(dāng)$page為最后一頁的時候點(diǎn)擊“下一頁”再往后跳轉(zhuǎn),

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

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

//當(dāng)前頁數(shù)要大于總頁數(shù)的時候就顯示當(dāng)前頁。

<!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>

朋友們可以在數(shù)據(jù)庫 list 表中添加幾條測試數(shù)據(jù)來測試分頁功能。

用while語句循環(huán)出數(shù)據(jù)庫中的數(shù)據(jù)并展示在 list.php文件中:

<?php while($rows=mysqli_fetch_array($result)):?>
<tr>
  <td style="text-align:left; padding-left:20px;">
  <input type="checkbox" name="id[]" value="<?php echo $rows["id"]?>" />
  <?php echo $rows["id"]?></td>
  <td><input type="text" name="sort[1]" value="1" style="width:50px; text-align:center; border:1px solid #ddd; padding:7px 0;" /></td>
  <td width="10%">
      <video width="200" height="150" controls="controls" >
          <source src="<?php echo $rows["video"]?>" type="video/mp4">
      </video>
  </td>
  <td><?php echo $rows["title"]?></td>
  <td><font color="#00CC99">首頁</font></td>
  <td><?php echo $rows["cate_name"]?></td>
  <td><?php echo date("Y-m-d H:i:s",$rows["time"])?></td>
  <td>
      <div class="button-group">
          <a class="button border-main" href="#"><span class="icon-edit"></span>修 改</a>
          <a class="button border-red" href="#" onclick="return del(1,1,1)">
              <span class="icon-trash-o"></span>刪 除
          </a>
      </div>
  </td>
</tr>
<?php endwhile;?>

注意:這里使用了 date函數(shù)對時間戳進(jìn)行了轉(zhuǎn)換,顯示為正常的添加時間。

<?php echo date("Y-m-d H:i:s",$rows["time"])?>

繼續(xù)學(xué)習(xí)
||
<!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>
提交重置代碼