首先我们要搞懂分页的基本参数
1 2 3 4 5 |
$pagesize 人为定义每页要显示的条数、 $records 总记录数:mysqli_num_rows() $pages 总页数:ceil($records/$pagesize) $page 当前页:用户单击 $startrow 开始行号 计算公式:($page-1)*$pagesize |
然后就是分页的语句
1 |
分页语句:select * from 表名 order by stuid limit {$startrow},{$pagesize} 之所以要打{}是因为要在php字符串里插入变量,本身sql不需要{} |
连接mysql
这是我写的连接mysql的demo,在需要连接数据库的时候载入即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php //定义连接mysql需要的变量 $db_host="localhost";//服务器 $db_username="root";//用户名 $db_password=123456; $db_name="srs";//数据库 const db_port=3306;//端口 //连接mysql $k = @mysqli_connect($db_host,$db_username,$db_password,$db_name,db_port); if($k==FALSE){ $str="mysql连接失败!".mysqli_connect_error (); //终止程序运行 die($str); } //设置数据返回的编码格式 $charset="utf8"; mysqli_set_charset($k, $charset); ?> |
分页PHP代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
<?php //载入数据库连接文件 require_once "./conn.php"; //分页参数 $pagesize=1; //获取当前页码和开始行号 $page=isset($_GET['page'])?$_GET['page']:1;//当前页码 $startrow=($page-1)*$pagesize; //开始行号 //查询的sql语句 $sql="select * from tbstudent"; //查询 $re=mysqli_query($k, $sql); //获取总数据数 $records=mysqli_num_rows($re); //计算总页数 $pages=ceil($records/$pagesize); //构造分页的sqwl语句 $sql.=" order by stuid limit {$startrow},{$pagesize}"; //重新查询构造结果集 $re=mysqli_query($k, $sql); //获取所有行的数据(关联数组) $arrs=mysqli_fetch_all($re,MYSQLI_ASSOC); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>学生信息统计表</title> <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <style> .pagelist{} .pagelist a{ padding: 3px 8px;text-decoration:none;margin: 0px 3px;border: 1px solid #ccc; } .pagelist a:hover{color: red;background-color: #99cc00;} .pagelist span{ padding: 3px 8px; } </style> </head> <body> <div style="text-align: center;padding-bottom: 10px;"> <h2>学生信息统计</h2> <a href="./add.php">添加学生</a> 共有<font color="red"><?php echo $records?></font>名学生 </div> <table border="1" width="600px" align="center" rules="all" cellpadding="5px"> <tr bgcolor="#ccc"> <td>编号</td> <td>姓名</td> <td>性别</td> <td>出生日期</td> <td>住处</td> <td>操作选项</td> </tr> <?php foreach ($arrs as $arr) { ?> <tr align="center"> <!--循环数组--> <td class="id"><?php echo $arr["stuid"]?></td> <td><?php echo $arr["stuname"]?></td> <td><?php echo ($arr["stusex"]==1)?"男":"女"?></td> <td><?php echo $arr["stubirth"]?></td> <td><?php echo $arr["stuaddr"]?></td> <td> <a href="">修改</a>| <a href="#" onclick="deletestu(<?php echo $arr["stuid"]?>)">删除</a> </td> </tr> <?php }; ?> <tr> <td colspan="9" align="center" height="50px" class="pagelist"> <?php //定义循环起点和终点 $start=$page-5; $end=$page+4; //如果当前页<=6时 if($page<=6){ $start=1; $end=10; } //如果$page>=$pages-4 if($page>=$pages-4){ $start=$pages-9; $end=$pages; } //如果$pages<10 if($pages<10){ $start=1; $end=$pages; } //循环输出页码 //上一页 if($page-1<1){ echo "<a href='list.php?page=1'>上一页</a>"; }else{ $pagen=$page-1; echo "<a href='list.php?page={$pagen}'>上一页</a>"; } for($i=$start;$i<=$end;$i++){ //当前页不加链接 if($page==$i){ echo "<span>{$i}</span>"; }else{ echo "<a href='list.php?page={$i}'>{$i}</a>"; } } //下一页 if($page<$pages){ $pagen=$page+1; echo "<a href='list.php?page={$pagen}'>下一页</a>"; }else{ echo "<a href='list.php?page={$pages}'>下一页</a>"; } ?> </td> </tr> </table> </body> <script> function deletestu(id){ //询问是否要删除 if(confirm("你真的要删除吗?")){ location.href="./delete.php?id="+id; } } </script> </html> |
基本上代码中的注释已经可以解决你的所有疑问,如果不能,可以评论疑问,我会尽量回复的。下面贴一张效果图。
2019年7月12日 下午9:58 沙发
实用,直接,不用框架,我喜欢
2019年7月15日 下午5:18 1层
@心灵博客
谢谢