批改狀態(tài):未批改
老師批語(yǔ):
封裝函數(shù)庫(kù) func_page.php
<?php /** * 分頁(yè)函數(shù)封裝 */ if(!function_exists('func_page')) { function func_page($db,$table,$page=1,$sum=5) { $offset = ($page-1) * $sum; //4.$page當(dāng)前頁(yè)數(shù)-1 $sql = "SELECT * FROM $table LIMIT {$offset}, {$sum};"; //1.先查詢(xún)數(shù)據(jù)庫(kù)所有數(shù)據(jù),LIMIT 參數(shù)1:索引位置開(kāi)始,參數(shù)2:每頁(yè)顯示數(shù)量 $res = mysqli_query($db,$sql); //2.使用Mysqli獲取結(jié)果集 $rows = mysqli_fetch_all($res,MYSQLI_ASSOC); //3.將數(shù)組進(jìn)行解析 // echo '<pre>'.print_r($rows,true).'</pre>'; // // 上一頁(yè)與下一頁(yè) // 獲取總頁(yè)數(shù)分2步:1.獲取總記錄數(shù),2.再除以每次的顯示數(shù)量,結(jié)果向上取整 $number = mysqli_query($db,"SELECT count(*) FROM {$table}"); //list() 函數(shù)用于在一次操作中給一組變量賦值。 list($total) = mysqli_fetch_row($number); //獲取總記錄數(shù),并賦值給變量$total $pages = ceil($total / $sum); //返回當(dāng)前分頁(yè)數(shù)據(jù)與總頁(yè)數(shù) return ['rows'=>$rows, 'pages'=>$pages]; } } 運(yùn)行實(shí)例 ? 點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>分頁(yè)查詢(xún)</title> <style> table,th,td { border:1px solid; font-size: 13px; text-align: center; } table{ width:1000px; margin: auto; border-collapse: collapse; } th,td{padding: 5px 5px;} th{ background-color: lightblue; } div { width: 1000px; margin: auto; text-align: center; margin-top: 20px; } div a{ text-decoration: none;padding: 5px 10px; border:1px solid #999; display: inline-block; } div a:hover,.active{ background-color: red; color: #fff; } form { display: inline; } </style> </head> <body> <?php // 導(dǎo)入分布函數(shù)庫(kù) require 'lib/func_page.php'; //連接數(shù)據(jù)庫(kù)獲取到全部的記錄 $db = mysqli_connect('127.0.0.1','root','root','php'); $page = isset($_GET['p']) ? $_GET['p'] : 1; //獲取當(dāng)前頁(yè)數(shù),isset()進(jìn)行判斷,有就把$_GET['p']值拿到,如果沒(méi)有就默認(rèn)返回第1頁(yè) $sum = 3; //設(shè)置顯示數(shù)量 $table = 'mana'; //調(diào)用分頁(yè)函數(shù) $data = func_page($db,$table,$page,$sum); $rows = $data['rows']; //當(dāng)前分頁(yè)數(shù)據(jù) $pages = $data['pages']; //總頁(yè)數(shù) /********要添加以下代碼**********/ //如果當(dāng)前變成為了0,則強(qiáng)制修改為1,否則就是當(dāng)前頁(yè)數(shù) $page = ($page == 0) ? 1 : $page; //如果大于總頁(yè)數(shù),則強(qiáng)制修改為總頁(yè)數(shù),否則就是當(dāng)前頁(yè)數(shù) $page = ($page > $pages) ? $pages : $page; //獲取總頁(yè)數(shù),總記錄數(shù)除以每頁(yè)顯示的數(shù)量后,得到總頁(yè)數(shù) $pages ?> <table> <caption><h2>用戶(hù)管理</h2></caption> <tr> <th>排序</th> <th>用戶(hù)名</th> <th>用戶(hù)等級(jí)</th> <th>QQ號(hào)碼</th> <th>存款余額</th> <th>注冊(cè)時(shí)間</th> <th colspan="3">操作</th> </tr> <?php foreach ($rows as $row): ?> <tr> <td><?php echo $row['mana_id']; ?></td> <td><?php echo $row['name']; ?></td> <td><?php echo $row['class']; ?></td> <td><?php echo $row['faqqq']; ?></td> <td><?php echo $row['sum']; ?></td> <td><?php echo $row['join_date']; ?></td> <td><?php echo $row['operation']; ?></td> </tr> <?php endforeach; ?> </table> <div> <?php if($page!=1): //判斷當(dāng)前頁(yè)數(shù)不等于1時(shí),首頁(yè)和上一頁(yè)自動(dòng)隱藏,反之顯示?> <a href="http://www.php.com/0427_page/page.php?p=1">首頁(yè)</a> <a href="http://www.php.com/0427_page/page.php?p=<?php echo $page-1; ?>">上一頁(yè)</a> <?php endif; ?> <!-- 中間頁(yè)碼 --> <!-- php代碼輸出class類(lèi)實(shí)現(xiàn)高亮顯示 --> <?php for ($i=1; $i<=$pages; $i++): ?> <a href="http://www.php.com/0427_page/page.php?p=<?php echo $i ?>" class="<?php if($_GET['p']==$i){echo 'active';}?>"><?php echo $i ?></a> <?php endfor; ?> <?php if($page != $pages): //判斷當(dāng)前頁(yè)數(shù)不等于總頁(yè)數(shù)時(shí),下一頁(yè)和尾頁(yè)自動(dòng)隱藏,反之顯示?> <a href="http://www.php.com/0427_page/page.php?p=<?php echo $page+1; ?>">下一頁(yè)</a> <a href="http://www.php.com/0427_page/page.php?p=<?php echo $pages; ?>">尾頁(yè)</a> <?php endif; ?> <!-- 用表單實(shí)現(xiàn)下拉框直接跳轉(zhuǎn)到目標(biāo)頁(yè)面 --> <form action="" method="get"> 第 <select name="p" id=""> <?php for ($i=1; $i<=$pages ; $i++): ?> <!-- 循環(huán)輸出全部頁(yè)碼,并鎖定當(dāng)前頁(yè)--> <option value="<?php echo $i; ?>" <?php if($_GET['p']==$i){echo 'selected';}; ?>><?php echo $i; ?></option> <?php endfor; ?> </select> 頁(yè) <button>跳轉(zhuǎn)</button> </form> </div> </body> </html>
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
微信掃碼
關(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)