PHP+mysql分页设计实例

效果如图
一共三个文件:

hytz.php展示页,不同的内容需要制作不同的展示页

<?php //会议通知-首页
    include ("menu.php");
    include ("head.php");
?>
<?php
    $keshi=$_SESSION["ywclkeshi"];                    
    $pagesql="select keshi,fw from hytz where keshi='$keshi' or fw=1";
    $pageresult=mysql_query($pagesql);    
    if ($pageresult)
    {
?>
<table width="80%" border="0" class="youbian" align="center" cellpadding="4" cellspacing="1">
    <caption><a href="index.php"><img src="images/home.png"class="t3"/></a>
    <a href="javascript:window.history.go(-1)"><img src="images/undo.png" width="32" height="32" class="t3"/></a>
    会议通知
</caption>    
      <thead>
      <tr class="touming">
        <th colspan="4" align="left">
        <a href="hytz_add.php"><img src="images/add.png" alt="" class="t2" border="0"/>添加</a>
        <a href="javascript:window.print();"><img src="images/printer.png" class="t2">打印</a>
        </th>
        </tr>
          <tr>
            <th width="7%">序号</th>
            <th width="72%">标题</th>
            <th width="14%">发布日期</th>
        <?php    
            if($_SESSION['ywcljibie']=="科级")//如果是科长则显示删除
            {    
        ?>
            <th width="7%">删除</th>
         <?php }?>
        </tr>
      </thead>
        <?php
            $totalnum=mysql_num_rows($pageresult);//取得记数总数
            
            include("pages.php");            
            $sql="select id,title,fbrq from hytz where (keshi='$keshi' or fw=1) order by id desc limit $startnum,$perpagenum";//读取指定记录数
            $i=$perpagenum*($page-1)+1;
            $result=mysql_query($sql);
            $numrows=mysql_num_rows($result);
            if ($numrows>0)
            {
                while($data=mysql_fetch_array($result))
                {
                    $count+=1;
                    $id=$data['id'];
                    $title=$data['title'];                        
                    $fbrq=$data['fbrq'];
                    
        ?>
                        <tr align="center" class="hx">
                               <td class="hx"><?php echo $count+($page-1)*$perpagenum;?></td>
                            <td align="left"><a href="hytz_show.php?id=<?php echo $id;?>"><?php echo $title;?></a></td>
                            <td>
                            <?php  //五天之内的通知红色显示
                                $jtrq=date('Y-m-d',time());
                                $xcrq=(strtotime($jtrq)-strtotime($fbrq))/86400;
                                if ($xcrq<5)
                                {
                                    echo "<font color=\"red\">$fbrq</font>";
                                }
                                else
                                {
                                    echo $fbrq;
                                }
                             ?></td>
                        <?php    
                                if($_SESSION['ywcljibie']=="科级")//如果是科长则显示删除
                            {    
        ?>
                            <td><a href="hytz_delete.php?id=<?php echo $id;?>"><img src="images/err.png" class="t1" border="0"/></a></td>
                        <?php }?>
                        </tr>
            <?php } ?>
                
        <?php } ?>
</table>
<?php
    include("pagesdh.php");
    }//最外层的$if ($totalnum>0)
?>

<?php
    include("foot.php");
?>



pages.php分页用的,可重复使用

<?php //产生分页与分页导航pagesdh.php搭配使用
    //查询数据库中一共有多少条数据
    $perpagenum=10;//设置每一页显示的最大记录数   
    $total= $totalnum;//获取记录总数
   
    if($_GET['page']=="")//给当前页page赋值,如果未赋值则为1
    {
    $page=1;
    }
    else
    {
    $page=$_GET['page'];
    }
   
    //获得当前页
    $startnum = ($page-1)*$perpagenum;//每页的起始位置
   
    if($page>1)//给前一页per赋值,如果大于1则减一,否则赋值1
        {$per=$page-1;}
    else
        {$per=1;}
       
    if($total%$perpagenum==0)//计算总页数,用总记录数除于每页最大记数,如果整除的话则取商,如果不能整除则取商+1
        {$totalpage=$total/$perpagenum;}
    else
        {$totalpage=(integer)($total/$perpagenum)+1;}
       
    $next=$page+1;//给下一页next赋值,正常为+1,如果next大于总页数则next赋值为总页数
    if($next>=$totalpage)
        {$next=$totalpage;}
?>



pagesdh.php分页器底部,可以重复使用


<!--分页导航与分页pages.php搭配使用。超级链接的显示样式见zhpt.css的a.fy-->
<h2 align="center">

<?php
    if ($page!=1 and $totalpage!=1){
?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=1">首页</a><!--首页链接-->
<?php }?>

<?php
    if ($page>1){
?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=<?php echo $per;?>">上一页</a><!--上一页链接-->
  
<?php }?>

    <!--当前页前面的所有页面的数字链接-->
    <?php
    for ($i=1;$i<$page;$i++)
    {
    ?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=<?php echo $i;?>"> <?php echo $i;?> </a>
    <?php
    }
    ?>
   
    <!--当前页页码-->
     <font color="#00AA00"><?php echo $page;?></font> 
   
    <!--当前页后面的所有页面的数字链接-->
    <?php
    for ($i=$page+1;$i<=$totalpage;$i++)
    {
    ?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=<?php echo $i;?>"> <?php echo $i;?> </a>
    <?php
    }
    ?>

<?php
    if ($page<$totalpage){
?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=<?php echo $next;?>">下一页</a><!--下一页-->
<?php }?>

<?php
    if ($page!=$totalpage and $totalpage!=1){
?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=<?php echo $totalpage;?>">尾页</a><!--尾页-->
<?PHP }?> 
        第<?php echo $page;?>/<?php echo $totalpage;?>页     共<?php echo $total;?>条信息<!--第X/X页,共X条信息->
</h2>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章