• 简单的PHP+Mysql实现分页


      1 <?php 
      2     /**
      3      * PHP+Mysql实现分页
      4      * **/
      5 ?>
      6 <html>
      7 <head>
      8     <meta http-equiv="Content-type" content="text/html;charset=utf-8">
      9 </head>
     10 
     11 <style>
     12 /*     <!-- 设置body体内的字体样式与大小--> */
     13     body{
     14         font-size:12px;FONT-FAMILY:verdana;100%;
     15     }
     16 /*     <!-- 样式设计 page的div居中 --> */
     17     div.page{
     18         text-align:center;
     19     }
     20 /*     <!-- 设置page的div下的a标签 --> */
     21     div.page a{
     22         border :#aaaadd 1px solid;text-decoration:none;padding:2px 5px 2px 5px;margin:2px;
     23     }
     24 /*     <!-- 设置当前页中页码的样式 --> */
     25     div.page span.current{
     26         border:#000099 1px solid;background-color:#000099;padding:4px 6px 4px 6px;margin:2px;color:#fff;
     27         font-weight:bold;
     28     }
     29 /*     <!-- 当连接失效时的样式 --> */
     30     div.page span.disable{
     31         border:#eee 1px solid;padding:2px 5px 2px 5px;margin:2px;color:#ddd;
     32     }
     33 /*     <!-- page的div中的form里的内容放在一行 --> */
     34     div.page form{
     35         display:inline;
     36     }
     37     /* <!-- 设置content块的高度 使内容与页码分离 --> */
     38     div.content{
     39         height:300px;
     40     }
     41 </style>
     42 
     43 <body>
     44 <?php
     45     /* echo "<pre>";
     46     print_r($_SERVER); */
     47 /**1、传入页码**/
     48     $page = $_GET['p'];//用GET方法得到页码
     49 /**2、根据页码取出数据:php->mysql的处理**/
     50     //配置项
     51     $host = "localhost";            //数据库地址
     52     $username = "root";                //登录用户名
     53     $password = "";                    //密码
     54     $db = "test";                   //所用数据库
     55     $pageSize = 10;                    //每一页的内容数量
     56     $showPage = 5;                    //能直接显示的页码数量
     57     //连接数据库
     58     $conn = mysql_connect($host,$username,$password);
     59     if(!$conn){
     60         echo "数据库连接失败";
     61     }
     62     //选择数据库
     63     mysql_select_db($db);
     64     //设置编码格式
     65     mysql_query("SET NAMES UTF8");
     66     //编写sql获取分页数据select *from 表名 limit 起始位置,显示条数
     67     $sql = "SELECT * FROM page LIMIT ".(($page - 1) * $pageSize).", $pageSize";
     68     
     69     //执行sql语句后得到资源句柄
     70     $result = mysql_query($sql);
     71     //var_dump($result);
     72     
     73     //为一个div块,放置网页内容
     74     echo "<div class='content'>";
     75     echo "<table border = 1 cellspacing = 0 width = 40% align=center>";
     76     echo "<tr><td>ID</td><td>NAME</td></tr>";
     77     //通过循环将从数据库中的数据输出
     78     while($row = mysql_fetch_assoc($result)){
     79         echo "<tr>";
     80         echo "<td>{$row['id']}</td>";
     81         echo "<td>{$row['name']}</td>";
     82         echo "</tr>";
     83     }
     84     echo "</table>";
     85     echo "</div>";
     86     
     87     //释放结果,关闭连接
     88     mysql_free_result($result);
     89     //获取数据总数
     90     $total_sql = "SELECT COUNT(*) FROM page";
     91     $total_result = mysql_fetch_array(mysql_query($total_sql));
     92     $total = $total_result[0];
     93     //计算出总的页码数
     94     $total_pages = ceil($total/$pageSize);
     95     
     96     mysql_close($conn);
     97 /**3、显示数据 + 分页条 **/
     98     //初始化分页条,并放入div块中
     99     $page_banner = "<div class='page'>";
    100     //计算偏移量
    101     $pageOffset = ($showPage - 1)/2;        //根据显示页码数计算偏移量
    102     
    103     //如果在第一页则隐藏首页与上一页
    104     if($page > 1){
    105         $page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=1'>首页</a>";
    106         $page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'><上一页</a>";
    107     }else{
    108         $page_banner .= "<span class='disable'>首页</a></span>";
    109         $page_banner .= "<span class='disable'><上一页</a></span>";
    110     }
    111     
    112     //初始化数据
    113     $start = 1;                    //能够直接选定的页码的首位
    114     $end = $total_pages;        //能够直接选定的页码的末位
    115     //如果总页数大于显示的页数,进行隐藏,分两种情况
    116     if($total_pages > $showPage) {
    117         //头部省略
    118         if($page > $pageOffset + 1){
    119             $page_banner .= "...";
    120         }
    121         
    122         //分别讨论首末位页码的大小
    123         if($page > $pageOffset){
    124             $start = $page - $pageOffset;
    125             //末尾页码需要分情况讨论
    126             $end = $page + $pageOffset < $total_pages ? $page + $pageOffset : $total_pages;
    127         }else{
    128             $start = 1;
    129             $end = $total_pages > $showPage ? $showPage : $total_pages;
    130         }
    131         //当前页加上偏移量大于总页码的情况
    132         if($page + $pageOffset > $total_pages){
    133             $start = $start - ($page + $pageOffset - $end);
    134         }
    135     }
    136     
    137     //显示页码连接
    138     for($i = $start;$i <= $end;$i ++){
    139         if($page == $i){
    140             $page_banner .= "<span class='current'>{$i}</span>";
    141         }else{
    142             $page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".$i."'>{$i}</a>";
    143         }
    144     }
    145     
    146     //尾部省略
    147     if($total_pages > $showPage && $page + $pageOffset < $total_pages){
    148         $page_banner .= "...";
    149     }
    150     //如果在最后一页则隐藏尾页与下一页
    151     if($page < $total_pages){
    152         $page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一页></a>";
    153         $page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($total_pages)."'>尾页</a>";
    154     }else{
    155         $page_banner .= "<span class='disable'>下一页></a></span>";
    156         $page_banner .= "<span class='disable'>尾页</a></span>";
    157     }
    158     
    159     //跳转页码的实现
    160     $page_banner .= "共{$total_pages}页,";
    161     $page_banner .= "<form action='mypage.php' method='get'>";
    162     $page_banner .= "到<input type='text' size='2' name='p'>页";
    163     $page_banner .= "<input type='submit' value='确定'>";
    164     $page_banner .= "</form></div>";
    165     
    166     //将分页条输出
    167     echo $page_banner;
    168     
    169     
    170     
    171     
    172     
    173     
    174     
    175     
    176     
    177     
    178     
    179 ?>
    180 </body>
    181 </html>
    View Code
  • 相关阅读:
    php笔记--php安装
    IEDA-Git的应用
    php类型
    3.比较与逻辑运算
    2.阶乘
    1.双分支
    013_request对象包含的内容以及获取
    011_jsp引入JSTL后实现jsp的解耦
    010_jsp引入JSTL
    ORACLE1.28 面试题
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/5317344.html
Copyright © 2020-2023  润新知