zoukankan      html  css  js  c++  java
  • PHP中文网上的分页代码

    page.php

    <html>
    <head>
        <meta http-equiv="CONTENT-TYPE" content="text/html;">
    </head>
    <title>分页</title>
    <style>
    
        div.page{
            text-align: center;
        }
        div.page a{
            border: #aa0027 solid 1px;
            text-decoration: none;
            padding: 2px 5px 2px 5px;
            margin: 2px;
        }
        div.page span.current{
            border: #000099 1px solid;background-color: #992b6c;padding: 4px 6px 4px 6px;margin: 2px;color: #fff;
            font-weight: bold;
        }
        div.page form{
            display: inline;
        }
        div.content{
            height: 200px;
        }
    </style>
    <body>
    <?php
    error_reporting(E_ALL ^ E_DEPRECATED);
    ?>
    <?php
    /** 1.传入页面 **/
    $page= isset($_GET['p']) ? trim($_GET['p']) : 1;
    /** 2.根据页面取出数据:php->mysql **/
    $host = "localhost";
    $username = 'root';
    $password = 'root';
    $db = 'test';
    
    $PageSize=5;
    $ShowPage=3;
    //连接数据库
    $conn = mysqli_connect($host, $username, $password,$db);
    if(!$conn){
        echo "数据库连接失败";
        exit;
    }
    
    //编写sql获取分页数据:SELECT * FROM 表名 LIMIT 起始位置 , 显示条数
    $sql = "SELECT*FROM user LIMIT ".($page-1)*$PageSize .",$PageSize";
    if(!
    $conn->query($sql)){
        echo "取出不成功";
    };
    //把sql语句传送到数据库
    $result = mysqli_query($conn,$sql);
    //处理我们的数据
    echo "<div class='content'>";
    echo "<table border=1 cellspacing=0 width=15% align='center'>";
    echo "<tr><td>ID</td><td>名字</td><td>密码</td></tr>";
    while($row = mysqli_fetch_array($result)){
        echo "<tr>";
        echo "<td>{$row['id']}</td>";
        echo "<td>{$row['name']}</td>";
        echo "<td>{$row['pass']}</td>";
        echo "<tr>";
    }
    echo "</table>";
    echo "</div>";
    //释放结果
    mysqli_free_result($result);
    
    //获取数据总数
    $to_sql="SELECT COUNT(*)FROM user";
    $to_result=mysqli_fetch_array(mysqli_query($conn,$to_sql));
    $to=$to_result[0];
    //计算页数
    $to_pages=ceil($to/$PageSize);
    mysqli_close($conn);
    
    /** 3.显示数据+分页条 **/
    $page_banner="<div class='page'>";
    //计算偏移量
    $pageffset=($ShowPage-1)/2;
    if($page>1){
        $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=1'>首页</a>";
        $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'><上一页</a>";
    }
    //初始化数据
    $start=1;
    $end=$to_pages;
    if ($to_pages>$ShowPage){
        if($page>$pageffset+1){
            $page_banner.="...";
        }
        if ($page>$pageffset){
            $start=$page-$pageffset;
            $end=$to_pages>$page+$pageffset?$page+$pageffset:$to_pages;
        }else{
            $start=1;
            $end=$to_pages>$ShowPage?$ShowPage:$to_pages;
        }
        if ($page+$pageffset>$to_pages){
            $start=$start-($page+$pageffset-$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 ($to_pages>$ShowPage&&$to_pages>$page+$pageffset){
        $page_banner.="...";
    }
    if ($page<$to_pages){
        $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一页></a>";
        $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($to_pages)."'>尾页</a>";
    }
    
    $page_banner.="共{$to_pages}页";
    $page_banner.="<form action='mupage.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;
    ?>
    </body>
    </html>
    

      *

    1. 第一次打开是设置默认当前页为1:  $page= isset($_GET['p']) ? trim($_GET['p']) : 1;
    2. 得到当前网址:$_SERVER['PHP_SELF']
    3. 当页码过多时,实现了隐藏部分页码的效果
  • 相关阅读:
    一致性 hash 算法( consistent hashing )
    UIScrollView的使用2个妙招:键盘遮挡,View 支持滚动
    iphone UI的大小(转)
    XCode 4创建ipa文件及提交应用程序
    我也设计模式——9.Bridge
    3.设计用于浅串行化的类
    我也设计模式——19.Mediator
    我也设计模式——16.Interpreter
    我也设计模式——22.Iterator
    我也设计模式——15.Chain of Responsablity
  • 原文地址:https://www.cnblogs.com/yolo-bean/p/7337770.html
Copyright © 2011-2022 走看看