#学习笔记#(21)php+mysql分页

/*分析思路:
1 用limit查询语句,可以控制当前页面显示的数据,是从哪一条开始到哪一条结束
2 用page作为网址后面的参数名,用$page记录当前页码,再计算出前一页$pre后一页$next赋值给page,进行上下页跳转


顺序
1 连接数据库
2 设置每页要显示的记录条数
3 查询总共有多少条数据
4 用3得到的值除以2得到的值,即 总共有多少页
5 获取$page的值
6 根据$page用limit语句查询对应记录
7 显示查询结果
8 $page±1,设置前一页、后一页、首页、尾页的链接

*/

<?php
$db=mysql_connect("localhost","root","root");   
$perpagenum = 2;//定义每页显示几条    
$total = mysql_fetch_array(mysql_query("select count(*) from test.mytest"));//查询数据库    
$totals = $total[0]; //用于统计总共有多少条数据
$totalspage = ceil($totals/$perpagenum);//上舍,取整,计算总共有多少页    
if(!isset($_GET['page'])//如果没有设置page的值
	||!intval($_GET['page'])//或者page取整的时候是0
	||$_GET['page']>$totalspage)//或者page超出了总页数
	//page可能的三种状态    
{    
    $page=1;    
}    
else    
{    
    $page=$_GET['page'];//如果不满足以上三种情况,则page的值为$_GET['page']    
}    
$startnum = ($page-1)*$perpagenum;//开始的条数是哪一条,用当前页数-1再*每页显示数量    
$sql = "select * from test.mytest limit $startnum,$perpagenum";//查询出所需要的条数    
$rs = mysql_query($sql);    //查询数据
$contents = mysql_fetch_array($rs);   //获取数据内容 
if($total)//如果$total不为空,即查询有结果则执行以下语句  ——显示查询结果 
{   
?>
	<table border="1px">
<?php
    do    
    {    
    $num = $contents['num'];    //获取数组的num项
    $name = $contents['name'];    //获取数组的name项
    ?>        
    <tr>    
    <td>  
    <?php echo $num;?>    
    </td>        
    <td>  
    <?php echo $name;?>    
    </td>    
    </tr>     
    <?php    
    }    
while($contents = mysql_fetch_array($rs));//do....while   当页面还有内容的时候就do,即显示数据内容 
$per = $page - 1;//上一页    
$next = $page + 1;//下一页    
echo "<center>共有".$totals."条记录,每页".$perpagenum."条,共".$totalspage."页 "; 
   
if($page != 1)    //如果不是以第一页,出现上一页的链接
{    
echo "<a href='".$_SERVER['PHP_SELF']."'>首页</a>";    
echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$per."'> 上一页</a>";    //上一页的链接通过?之后的page参数-1确定
}    
if($page != $totalspage)    //如果不是最后一页,则出现下一页的链接
{    
echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$next."'> 下一页</a>";    
echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$totalspage."'> 尾页</a></center>";  //下一页的链接通过?之后的page参数+1确定  
}    
}    
else//如果$total查询到的记录条数为0则显示   
{      
echo "您访问的页面暂时还没有内容哦~先看看别的吧";
}    
?>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值