在php 分页操作(一)中,我们没有对信息进行分页,改进如下——>首先我们先看一下分页效果图
我们可以再看一个关于分页的例子,如下图
当有大量信息需要展示的时候,在同一个页面不可能全部显示,这个时候就需要对信息进行分页。在分页的时候,我们需要知道哪些信息呢?
思路:需要知道总页数(pageCount)、当前页数(pageNow可以由编程人员自己定义)、总共有多少条信息(rowCount需要使用sql语句获取)、每页显示的信息数(pageSize可以由编程人员自己定义)。
下面,我们需要知道共有多少页,这里我们可以使用一个函数ceil函数,总页数=ceil(信息总数【rowCount】 / 每页显示信息数【pageSize】)
代码块:<?php
$conn=mysql_connect("localhost","用户名","密码") or die(mysql_error);
//链接数据库,如果链接出错,显示错误信息
mysql_query("set names utf8");
//设置编码格式
mysql_select_db("shop",$conn);
//选择数据库
$pageSize=5; //每页显示信息量
$rowCount=0; //信息总量
$pageNow=2; //当前页数
$pageCount=0; //总页数
if(!empty($_GET['pageNow'])){
$pageNow=$_GET['pageNow'];
}
$sql="select count(id) from emp"; //根据id获得数据总量
$res1=mysql_query($sql);
if($row=mysql_fetch_row($res1)){
$rowCount=$row[0];
}
$pageCount=ceil($rowCount/$pageSize);
$sql="select * from emp limit ".($pageNow-1)*$pageSize.",$pageSize";
//sql语句
$res=mysql_query($sql,$conn);
echo "<table border='1' width='700px'>";
echo "<tr>";
echo "<td>员工id</td><td>员工姓名</td><td>员工等级</td><td>员工邮箱</td><td>员工薪水</td></tr>";
while($row=mysql_fetch_assoc($res)){
echo "<tr>";
echo "<td>" .$row['id']."</td><td>" .$row['name']."</td><td>" .$row['grade']."</td>
<td>" .$row['emil']."</td><td>" .$row['salary']."</td>";
echo "</tr>";
}
echo "</table>";
if($pageNow>1){
$prepage=$pageNow-1;
echo "<a href='fenye.php?pageNow=$prepage'>上一页 </a>";
}
for($i=1;$i<=$pageCount;$i++){
echo "<a href='fenye.php?pageNow=$i'>$i </a>";
}
if($pageNow<$pageCount){
$nextpage=$pageNow+1;
echo "<a href='fenye.php?pageNow=$nextpage'>下一页 </a>";
}
mysql_free_result($res); //释放资源
mysql_close($conn); //关闭连接
?>