zoukankan      html  css  js  c++  java
  • PHP通用分页

    php通用分页,先看下样式

    代码如下:

    <style>
    body {
        font-size:12px;font-family:verdana;100%;
    }
    div.page{
        text-align:center;
    }
    
    div.content{
        height:300px;
    }
    
    div.page a{
        border:#aaaadd 1px solid;text-decoration:none;padding:2px 5px 2px 5px;margin:2px;
    }
    
    div.page span.current{
        border:#000099 1px solid;background-color:#000099;padding:4px 6px 4px 6px;margin:2px;color:#fff;font-weight:bold;
    }
    
    div.page span.disable{
        border:#eee 1px solid;padding:2px 5px 2px 5px;margin:2px;color:#ddd;
    }
    
    div.page form{
        display:inline;
    }
    </style>
    <?php
    header("Content-type:text/html;charset=utf-8");
    //传入页码
    $page = isset($_GET['p']) ? $_GET['p'] : 1;
    
    $page = $page > 0 ? intval($page) : 1;
    
    $conn = mysql_connect("127.0.0.1","root","") or die('连接数据库失败');
    mysql_select_db("demo",$conn);
    mysql_query("SET NAMES UTF8");
    
    $pageSize = 10;//每页显示的数据
    $showPage = 5;//显示页码
    $sql = "select * from demo limit ".($page-1)*$pageSize.",".$pageSize;
    $result = mysql_query($sql,$conn);
    
    echo '<div class="content"><table border=1 cellspacing=0 width=40% align="center">';
    echo '<tr><td>ID</td><td>NAME</td></tr>';
    while($row = mysql_fetch_assoc($result)){
        echo '<tr>';
        echo '<td>'.$row['id'].'</td>';
        echo '<td>'.$row['name'].'</td>';
        echo '</tr>';
    }
    echo '</table></div>';
    mysql_free_result($result);
    $total_sql = "select count(*) from demo";
    $total_result = mysql_fetch_array(mysql_query($total_sql));
    $total = $total_result[0];
    
    //计算总页数
    $total_page = ceil($total/$pageSize);
    mysql_close($conn);
    /*分页条*/
    $page_banner = '<div class="page">';
    
    //偏移量
    $pageOffset = ($showPage-1)/2;
    
    if ($page > 1) {
        $page_banner .= '<a href="'.$_SERVER['PHP_SELF'].'?p=1">首页</a>&nbsp;';
        $page_banner .= '<a href="'.$_SERVER['PHP_SELF'].'?p='.($page-1).'"><<上一页</a>&nbsp;';
    } else {
        $page_banner .= '<span class="disable">首页</span>';
        $page_banner .= '<span class="disable"><<上一页</span>';
    }
    
    //page start
    
    //初始化数据
    $start = 1;
    $end = $total_page;
    
    if ($total_page > $showPage){
        if ($page > $pageOffset+1) {
            $page_banner.= '...';
        }
    
        if ($page > $pageOffset) {
    
            //开始位置总是当前页-偏移量
            $start = $page - $pageOffset;
    
            //右边的显示码加偏移量小于总页数就显示当前页+偏移量否则就显示最后页
            $end = $total_page > ($page + $pageOffset) ? ($page + $pageOffset) : $total_page;
        } else {
            $start = 1;
            $end = $total_page > $showPage ? $showPage : $total_page;
        }
    
        if ($page+$pageOffset > $total_page) {
    
            //实际的开始位置-(当前位置+偏移量-最后一页)
            $start = $start - ($page + $pageOffset - $end);
        }
    }
    
    for($i = $start; $i <= $end; $i++ ){
    
        if ($page == $i) {
            $page_banner .= '<span class="current">'.$i.'</span>';
        } else {
            $page_banner .= '<a href="'.$_SERVER['PHP_SELF'].'?p='.($i).'">'.$i.'</a>';
        }
    }
    
    
    if ($total_page > $showPage && $total_page > $page + $pageOffset) {
        $page_banner.= '...';
    }
    
    //page end
    if ($page < $total_page) {
        $page_banner .= '<a href="'.$_SERVER['PHP_SELF'].'?p='.($page+1).'">下一页>></a>';
        $page_banner .= '<a href="'.$_SERVER['PHP_SELF'].'?p='.($total_page).'">尾页</a>';
    } else {
        $page_banner .= '<span class="disable">下一页>></span>';
        $page_banner .= '<span class="disable">尾页</span>';
    }
    $page_banner .= '共'.$total_page.'页';
    $page_banner .= '到第<form action="mypage.php" method="get">';
    $page_banner .= '<input type="text" size="2" name="p"/>页';
    $page_banner .= '<input type="submit" value="确定"/>';
    $page_banner .= '</form></div>';
    echo $page_banner;
  • 相关阅读:
    delphi TOpenDialog
    delphi TSaveDialog
    Delphi中一些常用的组合键值
    delphi TColorDialog
    Delphi TFindDialog TReplaceDialog对话框在Memo中的使用
    Delphi ListView基本用法大全
    地球帝国3
    五笔难拆字字根表
    Delphi Format中的换行符号是什么
    myNote
  • 原文地址:https://www.cnblogs.com/gide/p/4606753.html
Copyright © 2011-2022 走看看