PHP代碼
<?php /*分頁(yè)查詢?cè)? * 分頁(yè)的原理: * 1.LIMIT參數(shù)的作用:偏移量與顯示數(shù)量 * 2.如果控制每頁(yè)顯示的數(shù)量 * 3.接收GET參數(shù),用p表示當(dāng)前頁(yè)數(shù),每頁(yè)顯示3條 * 4.需要的參數(shù): * (1).totalPage 總頁(yè)數(shù) * (2).totalNumber 一共有多少條數(shù)據(jù) * (3).pageSize 每頁(yè)顯示多少條數(shù)據(jù) * (4)currentPage 當(dāng)前第幾頁(yè) * (5)*.rangeStart 起始頁(yè) * (6)*.rangeEnd 末頁(yè) * 5.當(dāng)前偏移量的計(jì)算公式:(頁(yè)數(shù)-1)*每頁(yè)顯示的數(shù)量 * offset = (page-1)*num */ //1.用PDO預(yù)處理來(lái)獲取表中的全部數(shù)據(jù) header('Content-Type:text/html; charset=UTF-8'); $page = isset($_GET['p'])? $_GET['p']:1; $page = ($page == 0 ) ? 1 : $page; //$unm表示每頁(yè)顯示的記錄數(shù) $num = 3; $offset = ($page-1)*$num; $pdo = new PDO('mysql:dbname=demo','root', 'root'); //LIMIT :offset,num limit限制的意思 第一個(gè)參數(shù):offset是偏移量,第二個(gè)參數(shù)是一個(gè)常量,顯示多少條數(shù)據(jù) 為是PDO預(yù)處理的寫(xiě)法 $sql = "SELECT `id`,`name`,`email` FROM `user1` LIMIT :offset, :num"; $pdoStmt = $pdo->prepare($sql); //綁定第一個(gè)占位符offset $pdoStmt->bindParam('offset', $offset, PDO::PARAM_INT); //綁定第二個(gè)占位符num $pdoStmt->bindParam('num', $num, PDO::PARAM_INT); //注:$pdoStmt調(diào)用execute()方法,這個(gè)方法里面不傳參數(shù) $res = $pdoStmt->execute(); echo '<h3 align="center">用戶信息表</h3>'; echo '<table border="1" cellspacing="0" cellpadding="5" width="70%" align="center">'; echo '<tr bgcolor="#90ee90"><th>ID</th><th>用戶名</th><th>郵箱</th></tr>'; foreach ($pdoStmt as $row) { echo '<tr align="center">'; echo '<td>'.$row['id'].'</td><td>'.$row['name'].'</td><td>'.$row['email'].'</td>'; echo '</tr>'; } echo '</table>'; //計(jì)算共計(jì)多少頁(yè) $pdoStmt2 = $pdo->prepare("SELECT * FROM user1"); $pdoStmt2->execute(); //$totalPage總頁(yè)數(shù) ceil向上取整 $pdoStmt2->rowCount()總頁(yè)數(shù) $num每頁(yè)數(shù) $totalPage = ceil($pdoStmt2->rowCount() / $num); //編寫(xiě)下一頁(yè)到總頁(yè)數(shù),你再點(diǎn)下一頁(yè)會(huì)越界,必須設(shè)置 //($totalPage-1)這里減1是:如果是最大頁(yè)你點(diǎn)了下一頁(yè)多了一頁(yè)必須減回來(lái),否則設(shè)置當(dāng)前頁(yè) $page = ($page == $totalPage) ? ($totalPage-1) : $page; //創(chuàng)建分頁(yè)條 echo '<h3 align="center">'; echo '<a href="http://www.php.io/30/page.php?p=1">首頁(yè)</a>'; echo '<a href="http://www.php.io/30/page.php?p='; echo (($page-1)==0)?1:($page-1); echo '">上一頁(yè)</a>'; for ($i=1; $i<=$totalPage; $i++) { echo '<a href="http://www.php.io/30/page.php?p='.$i.'">'.$i.'</a>'; } echo '<a href="http://www.php.io/30/page.php?p='.($page+1).'">下一頁(yè)</a>'; echo '<a href="http://www.php.io/30/page.php?p='.$totalPage.'">尾頁(yè)</a>'; echo '</h3>';
效果圖
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)