php+mysql实现分页,前一页后一页,尾页首页,以及中间页,被点击的页码会高亮显示。
高亮的原理是判断当前页$page 与 被选择页$i是否相同。
lib/func_page.php
实例
<?php /医院 * */ if (!function_exists('func_page')){ /医院 * @param $db * @param $table * @param int $page * @param int $num * @return array */ function func_page($db,$table,$page=1,$num=3) { $offset=((int)$page-1)*$num; $sql="SELECT * FROM {$table} LIMIT {$offset},{$num}"; $res=mysqli_query($db,$sql); $rows=mysqli_fetch_all($res,MYSQLI_ASSOC); $number=mysqli_query($db,"SELECT COUNT(*) FROM {$table}"); list($total)=mysqli_fetch_row($number); //总页数 $pages=ceil($total/$num); return ['rows'=>$rows,'pages'=>$pages]; } }
page2.php
实例
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>page</title> <style> table,th,td { border:1px solid black; } table th { background-color: lightblue; } table { border-collapse: collapse; width: 70%; text-align: center; margin: 30px auto; } h3 { text-align: center; } h3 a { text-decoration: none; margin-left: 20px; border: 1px solid black; display: inline-block; background-color: lightgreen; } h3 a:hover,.active { background-color: orange; color: white; } form { display: inline; } </style> </head> <body> <?php require 'lib/func_page.php'; //connect db $db= mysqli_connect('localhost','root','root','user'); //Get current page $page=isset($_GET['page']) ? $_GET['page']:1; //每页显示3条记录 $num=3; $table='staf'; $data=func_page($db,$table,$page,$num); $rows=$data['rows']; $pages=$data['pages']; $page=($page == 0) ? 1:$page; $page=($page>$pages) ? $pages:$page; $link=$_SERVER['PHP_SELF'].'?page='; ?> <table> <caption><h2>员工信息表</h2></caption> <tr> <th>name</th> <th>sex</th> <th>age</th> <th>salary</th> </tr> <?php foreach ($rows as $row): ?> <tr> <td><?php echo $row['name']; ?></td> <td><?php echo $row['sex']; ?></td> <td><?php echo $row['age']; ?></td> <td><?php echo $row['salary']; ?></td> </tr> <?php endforeach;?> </table> <!--翻页显示 --> <h3> <?php if ($page != 1): ?> <a href="<?php echo $link.'1'; ?>">首页</a> <a href="<?php print $link.($page-1); ?>">上一页</a> <?php endif; ?> <!--中间页码--> <?php for ($i=1;$i<=$pages;$i++):?> <a class="<?php if($page==$i){echo 'active';} ?>" href="<?php print $link.$i ?>"><?php echo $i ?></a> <?php endfor; ?> <?php if ($page != $pages): ?> <a href="<?php print $link.($page+1); ?>">下一页</a> <a href="<?php echo $link.$pages; ?>">尾页</a> <?php endif; ?> <!--快速跳转--> <form action="" method="get"> 第 <select name="page" id="page"> <?php for($i=1;$i<=$pages;$i++): ?> <option value="<?php echo $i ?>" <?php if($page == $i){echo 'selected';}?>> <?php echo $i; ?> </option> <?php endfor; ?> </select> 页 <button>跳转</button> </form> </h3> </body> </html>