ホームページ  >  記事  >  PHPページングクエリ

PHPページングクエリ

无忌哥哥
无忌哥哥オリジナル
2018-06-28 14:02:012660ブラウズ

* ページングクエリの原理

* ページング原理の分析:

* 1. LIMIT パラメータの役割: オフセットと表示量

* 2. ページごとの表示数を制御する場合

* 3. 受信パラメータを取得し、現在のページ番号を表すために p を使用します。各ページには 3 つの項目が表示されます

* 4. 必須パラメータ:

* (1).totalPage 総ページ数

* (2).totalNumber データの数全部で何個ありますか

* ( 3).pageSize 各ページに表示されるデータの数

* (4)currentPage 現在のページ

* (5)*.rangeStart 開始ページ

* (6) *.rangeEnd 最後のページ

* 5. 現在 オフセットの計算式: (ページ数-1)*各ページに表示される数

* offset = (page-1)*num

$page = isset($_GET['p'])? $_GET['p']:1;
$page = ($page == 0 ) ? 1 : $page;
$num = 5;
$offset = ($page-1)*$num;
//1.获取到所有数据,用表格显示出来
$pdo = new PDO('mysql:host=localhost;dbname=php','root', 'root');
//$sql = "SELECT id,name,email FROM user1 LIMIT 0,3";
$sql = "SELECT `staff_id`,`name`,`sex`,`age`,`salary` FROM `staff` LIMIT :offset, :num";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->bindParam(':num', $num, PDO::PARAM_INT);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$res = $stmt->fetchAll();
echo &#39;<h2 align="center">员工信息表</h2>&#39;;
echo &#39;<table border="1" cellspacing="0" cellpadding="5" width="70%" align="center">&#39;;
echo &#39;<tr bgcolor="lightgreen"><th>ID</th><th>用户名</th><th>性别</th><th>年龄</th><th>工资</th></tr>&#39;;
foreach ($res as $row) {
    echo &#39;<tr align="center">&#39;;
    echo &#39;<td>&#39;.$row[&#39;staff_id&#39;].&#39;</td><td>&#39;.$row[&#39;name&#39;].&#39;</td>&#39;;
    $row[&#39;sex&#39;] = $row[&#39;sex&#39;]==0 ? &#39;男&#39; : &#39;<span style="color:red">女</span>&#39;;
    echo &#39;<td>&#39;.$row[&#39;sex&#39;].&#39;</td>&#39;;
    echo &#39;<td>&#39;.$row[&#39;age&#39;].&#39;</td><td>&#39;.$row[&#39;salary&#39;].&#39;</td>&#39;;
    echo &#39;</tr>&#39;;
}
echo &#39;</table>&#39;;
//计算共计多少页?
$stmt2 = $pdo->prepare("SELECT * FROM staff");
$stmt2->execute();
$totalPage = ceil($stmt2->rowCount() / $num);
$page = ($page == $totalPage) ? ($totalPage-1) : $page;
echo &#39;<style>a {margin-left: 10px;text-decoration: none}a:hover{color:red}</style>&#39;;
echo &#39;<h3 align="center">&#39;;
echo &#39;<a href="http://php.io/0427/page.php?p=1">首页</a>&#39;;
echo &#39;<a href="http://php.io/0427/page.php?p=&#39;;
echo (($page-1)==0)?1:($page-1);
echo &#39;">上一页</a>&#39;;
for ($i=1; $i<=$totalPage; $i++) {
    echo &#39;<a href="http://php.io/0427/page.php?p=&#39;.$i.&#39;">&#39;.$i.&#39;</a>&#39;;
}
echo &#39;<a href="http://php.io/0427/page.php?p=&#39;.($page+1).&#39;">下一页</a>&#39;;
echo &#39;<a href="http://php.io/0427/page.php?p=&#39;.$totalPage.&#39;">尾页</a>&#39;;
echo &#39;</h3>&#39;;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。