• 技术文章 >php教程 >PHP源码

    php分页多种实现程序代码

    2016-06-08 17:24:43原创539
    本文章总结了目前常用的几种分页代码,比如说上一页,下一页之类的,还有一种数字分页,像1,2,3...之类的等

    分页代码

    代码如下 复制代码
      //page当前页,num每页的页数
      $page=isset($_GET['page'])?intval($_GET['page']):1;
      $num=5;
      $conn = mysql_connect('127.0.0.1','root','');
      if (!$conn) {
       die('Could not connect:'.mysql_error());
      }
      mysql_select_db('shop');
      //获取记录总数
      $total=mysql_num_rows(mysql_query("select * from user"));
      //计算页数
      $pagenum=ceil($total/$num);
      //限制页数不能超出范围
      If($page>$pagenum || $page == 0){
        Echo 'Error : Can Not Found The page.';
        Exit;
      }
      //语句“Select * from table limit 0,10”从table表提取十条信息,0为起点,10为提取的数目
      //$offset为起点值,如当前页为第一页,每页5条,起点即为0,同理当前为第二页,起点将为5
      $offset=($page-1)*$num;
      $result=mysql_query("select * from user limit $offset,$num");
      while($it=mysql_fetch_array($result)){
        echo 'id:'.$it['id'].' name:'.$it['name'].'
    ';
      }
      //显示链接页面切换链接,当前页无链接
      for($i=1;$i<=$pagenum;$i++){
        $show=($i!=$page)?"$i":"$i";
        echo $show." ";
      }
      echo $total.'条记录,每页5条,共'.$pagenum.'页';
    mysql_free_result($result);
      mysql_close($conn);
    ?>

    实例2

    代码如下 复制代码

    //function.php 这里是主函数
    function php_page($page_dbname,$page_size,$page)
    {
    if ($page=="")
    {$page=1;};
    if ($ljjl=="")
    {$ljjl=0;};
    if($page)
    {
    //$page_dbname="tb_insert";
    //$page_size=4; //每页显示4条记录
    $query="select count(*) as total from ".$page_dbname; //从数据库中读取数据
    $result=mysql_query($query);
    $message_count=mysql_result($result,0,"total"); //获取总的记录数
    $page_count=ceil($message_count/$page_size); //获取总的页数
    $offset=($page-1)*$page_size;
    $query="select * from ".$page_dbname." order by id desc limit $offset, $page_size";
    $result=mysql_query($query);
    //内容显示 这里只是简单的作个示范,可以按你的要求随便改动。
    while ($myrow=@mysql_fetch_array($result))
    {
    echo $myrow[name]." | ".$myrow[number]." | ".$myrow[tel]." | ".$myrow[address]."

    ";
    }

    }
    echo "页次:".$page."//m.sbmmt.com/m/";
    echo $page_count."页 记录:";
    echo $message_count."条"."
    ";

    if($page!=1)
    {
    echo "首页 ";
    echo "上一页 ";
    }
    else
    {
    echo "首页 ";
    echo "上一页 ";
    }

    for($i=1; $i<=$page_count; $i++)
    {
    if ($page==$i)
    {echo $i." ";}
    else
    {echo "$i ";}
    }

    if($page<$page_count)
    {
    echo "下一页 ";
    echo "尾页";
    }
    else
    {
    echo "下一页 ";
    echo "尾页";
    }
    }
    ?>

    //conn.php 连接数据库

    代码如下 复制代码

    $id=mysql_connect("localhost","root","root")or dir('连接失败:' . mysql_error());
    //mysql_connect("IP","用户名","密码")

    if(mysql_select_db("db_database06",$id))
    echo "";
    else
    echo ('连接失败:' . mysql_error());
    mysql_query("set names gb2312");
    ?>

    //主程序,将上面俩个文件包含进来,再调用一个php_page()就可完成分页。:)

    代码如下 复制代码

    require_once("conn.php");
    require_once("function.php");
    php_page("tb_insert",3,$_GET[page]); // "tb_insert"是表名,3是在每页要显示的记录数,$_GET[page]是page的id,直接用就可以了。
    ?>

    上在的一种是文字分页,比如说上一页,下一页之类的,还有一种数字分页,像1,2,3...之类的,这个比较简单,前者稍微复杂些.最后一种是他们2者结合

    代码如下 复制代码

    --> 1 //获取当前页数
    if(isset($_GET['page'])){
    $page = intval($_GET['page']);
    }
    else {
    $page=1;
    }
    $PageSize = 1; //每页的记录数量
    // 获取总数量
    $sql = "select count(*) from blog";
    $result = mysql_query($sql);
    $row = mysql_fetch_row($result);
    $amount = $row[0];
    /*计算总页数
    if($amount){
    if($amount<$PageSize) { //如果总数量小于每页的记录数量$PageSize,那么只有一页.
    $PageCount = 1;
    }
    if($amount%$PageSize) { //总数量除以每页的记录数量取于
    $PageCount =& amp;nbsp;(int)($amount/$PageSize)+1;//如果有于,则页数等于总数量除每页的记录数加1
    }
    else{
    $PageCount =& amp;nbsp;$amount/$PageSize;//没有,则结果是页数
    }
    }
    else{
    $PageCount = 0;
    }*/
    $PageCount = ceil($amount/$PageSize);//总页数=总数量除以每页数量 如果有小树,则进位< span style="color: #008000;">
    if($Page>$PageCount|$page==0){// 如果当前页数大于总页数
    echo "不能发现此页!";
    exit();
    }

    //翻页链接
    $PageOut = '';
    if($page==1){//如果页数只有一页
    $PageOut .= '第一页|上一页';
    }
    else{
    $PageOut .= '第一页& lt;/a>|上一页|';
    }
    if($page==$PageCount||$PageCount==0){//如果当前页等于总也数
    $PageOut .= '下一页|尾页';
    }
    else{
    $PageOut .= '下一页|尾页';
    }
    //获取数据
    if($amount){
    $sql="select * from blog limit ".($page-1)*($PageSize).",$PageSize";
    $result=mysql_query($sql);
    while($row=mysql_fetch_array($result)){//此段代码只是示例
    $blogs[] = array('bid'=>$row['bid'],'title'=>$row['title']);
    foreach ($blogs as $blog){
    $title=$blog['title'];
    }
    $output = "删除".
    "编辑".
    "查看";
    include("template/default/blog.tpl.php");
    echo $PageOut;
    }
    for($i=1;$i<=$PageCount;$i++){//数字分页
    $Pageshow = ($i!=$page)?"$i":"$i";
    echo $PageShow;
    }
    echo $amount.'条记录,每页'.$PageSize.'条,共'.$PageCount.'页';
    }

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp quot page mysql Echo
    上一篇:php ajax分页实现程序代码分享 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • php实用图片水印效果代码• 检测移动设备的php代码(手机访问)• php 列出目录与删除目录实例代码• 用PHP实现小写金额转换大写金额【精确到分】• 收藏PHP常用自定义函数
    1/1

    PHP中文网