孟拿沤公股订爆杀能佰咐岁熟
新建demo5.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>实现上一页与下一页,首页,尾页</title> <style> table,th,td { border: 1px solid black; } table { /*--折叠表格线*/ border-collapse: collapse; width:70%; /*上下30px 左右居中*/ margin:30px auto; /*文字居中*/ text-align: center; } table th { /*背景色,浅天蓝色*/ background-color:lightskyblue ; } h3 { /*文本居中*/ text-align: center; } h3 a { /*去除下划线*/ text-decoration: none; /*左外边距10px*/ margin-left: 10px; border:1px solid white; display: inline-block; background-color: lightsalmon; height:30px; line-height: 30px; padding: 0 10px; min-width:30px; } /*.active 高亮显示:当点击页面时添加高亮*/ h3 a:hover, .active { background-color:lightpink ; color: white; } form { /*//变为行级元素*/ display: inline; } </style> </head> <body> <?php //连接数据库 $db=mysqli_connect('127.0.0.1','root','root'); mysqli_select_db($db,'myuser'); $num=5; //如果存在分页变量p,则页数为p 没有 则当前页数=1 $page=(isset($_GET['p']))?($_GET['p']):1; $offset=($page-1)*$num; $sql="select * from staff limit {$offset},{$num};"; $res=mysqli_query($db,$sql); $rows=mysqli_fetch_all($res,MYSQLI_ASSOC); //计算总页数(不能使用mysqli_num_rows($res),因为获取的是分页的记录数) $number=mysqli_query($db,'select count(*) from staff');//获取结果集 //解析结果集 并保存索引到变量$total中 $total即当前记录总数 list($total)=mysqli_fetch_row($number); //获取全部数据更加易懂的方法: //$select_result=mysqli_query($db,"select * from staff"); //$number=mysqli_num_rows($select_result); $pages=ceil($total/$num);//总的页数 ceil()向上取整 ?> <table> <caption>员工信息表</caption> <tr> <th>ID</th> <th>姓名</th> <th>性别</th> <th>年龄</th> <th>工资</th> </tr> <!--使用模板语法来写foreach 这样可以在html中写html代码 不用再写大括号--> <?php foreach ($rows as $row):?> <tr> <td><?php echo $row['staff_id']; ?></td> <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> <a href="http://www.myphp.cn/13/demo5.php?p=1">首页</a> <a href="http://www.myphp.cn/13/demo5.php?p=<?php //如果页码为0时,强制将页码变为1 大于0时,显示分页变量值-1 echo ($page-1)==0 ? 1 :($page-1); ?>">上一页</a> <!-- 当前页码添加高亮显示--> <!-- //如果当前页码等于$i,说明在当前页 添加active属性--> <?php for($i=1;$i<=$pages;$i++):?> <a class="<?php if($page==$i) echo 'active'; ?>" href="http://www.myphp.cn/13/demo5.php?p=<?php echo $i ;?>"><?php echo $i; ?></a> <?php endfor;?> <a href="http://www.myphp.cn/13/demo5.php?p=<?php echo ($page+1)>$pages ? $pages:($page+1); ?>">下一页</a> <a href="http://www.myphp.cn/13/demo5.php?p=<?php echo $pages ?>">尾页</a> <!-- 页面直接跳转--> <form action="" method="get"> 第 <select name="p" id=""> <?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>
执行:
当前页码为1时,不显示首页和上一页,为最后一页时,不显示下一页和尾页
<!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>实现上一页与下一页,首页,尾页</title> <style> table,th,td { border: 1px solid black; } table { /*--折叠表格线*/ border-collapse: collapse; width:70%; /*上下30px 左右居中*/ margin:30px auto; /*文字居中*/ text-align: center; } table th { /*背景色,浅天蓝色*/ background-color:lightskyblue ; } h3 { /*文本居中*/ text-align: center; } h3 a { /*去除下划线*/ text-decoration: none; /*左外边距10px*/ margin-left: 10px; border:1px solid white; display: inline-block; background-color: lightsalmon; height:30px; line-height: 30px; padding: 0 10px; min-width:30px; } /*.active 高亮显示:当点击页面时添加高亮*/ h3 a:hover, .active { background-color:lightpink ; color: white; } form { /*//变为行级元素*/ display: inline; } </style> </head> <body> <?php //连接数据库 $db=mysqli_connect('127.0.0.1','root','root'); mysqli_select_db($db,'myuser'); $num=5; //如果存在分页变量p,则页数为p 没有 则当前页数=1 $page=(isset($_GET['p']))?($_GET['p']):1; $offset=($page-1)*$num; $sql="select * from staff limit {$offset},{$num};"; $res=mysqli_query($db,$sql); $rows=mysqli_fetch_all($res,MYSQLI_ASSOC); //计算总页数(不能使用mysqli_num_rows($res),因为获取的是分页的记录数) $number=mysqli_query($db,'select count(*) from staff');//获取结果集 //解析结果集 并保存索引到变量$total中 $total即当前记录总数 list($total)=mysqli_fetch_row($number); //获取全部数据更加易懂的方法: //$select_result=mysqli_query($db,"select * from staff"); //$number=mysqli_num_rows($select_result); $pages=ceil($total/$num);//总的页数 ceil()向上取整 ?> <table> <caption>员工信息表</caption> <tr> <th>ID</th> <th>姓名</th> <th>性别</th> <th>年龄</th> <th>工资</th> </tr> <!--使用模板语法来写foreach 这样可以在html中写html代码 不用再写大括号--> <?php foreach ($rows as $row):?> <tr> <td><?php echo $row['staff_id']; ?></td> <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="http://www.myphp.cn/13/demo5.php?p=1">首页</a> <a href="http://www.myphp.cn/13/demo5.php?p=<?php //如果页码为0时,强制将页码变为1 大于0时,显示分页变量值-1 echo ($page-1)==0 ? 1 :($page-1); ?>">上一页</a> <?php endif;?> <!-- 当前页码添加高亮显示--> <!-- //如果当前页码等于$i,说明在当前页 添加active属性--> <?php for($i=1;$i<=$pages;$i++):?> <a class="<?php if($page==$i) echo 'active'; ?>" href="http://www.myphp.cn/13/demo5.php?p=<?php echo $i ;?>"><?php echo $i; ?></a> <?php endfor;?> <!--当前已经是最后一页的时候,下一页和最后一页也应该不显示--> <?php if($page!=$pages): ?> <a href="http://www.myphp.cn/13/demo5.php?p=<?php echo ($page+1)>$pages ? $pages:($page+1); ?>">下一页</a> <a href="http://www.myphp.cn/13/demo5.php?p=<?php echo $pages ?>">尾页</a> <?php endif;?> <!-- 页面直接跳转--> <form action="" method="get"> 第 <select name="p" id=""> <?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>
执行:
截止目前的分页代码:
http://www.xuexianswer.com/yunpan/short.php?sid=RYxLJ3
么偏氓吠宝位啊德兼陆社阔费