数据库分页显示入门

上一篇 / 下一篇  2006-04-13 17:31:58 / 天气: 晴朗 / 心情: 高兴 / 精华(2) / 个人分类:PHP教程

转自:PHPCHINA

网上真的有不少的分页教程...但有许多都无法使用需要不断的修改..有些分页类写的老长老长.最终还是没心思把它搞明白...其实分页这个如此简单的东西.实在没必要写个庞大的类来表现自己...最多写一个几十行的函数就可以搞定.今天中午没事儿.有一个多小时的空余时间.足可以把分页的基本原理给大家说叼说叼..希望对初入门的学习者有帮助..


<?php
   
//和服务器的连兄弟们都会吧  
   
$link = mysql_connect('localhost','root','php1981'
);
   
//这里是选择你使用的数据库.这个你也一定明白  
   
mysql_select_db('idcof'
);
   
查寻数据库中的记寻  
   $query
= "select * from xnhost"
;
   
//得到查寻结果集  
   
$result = mysql_query($query
);
   
//这里得到结果的行数.也就是我们要使用的分页的总记录数  
   
$num_row = mysql_num_rows($result
);
   
//定义每页显示的记录数,在这里我们定义每页显示10篇记录  
  
$pagesize = 10
;
   
//总记录数除以每页显示的记录数.得到我们的总页数$pages
   
INTVAL为取整.即如得到的数为小数则只读取整数部分.例如5.33333,
只读取5
  $pages    
= intval($num_row/$pagesize
);
   
//如果有余数的话.则把总页数加上1  
   
if($num_row%$pagesize
)
  {
      
$pages
++;
  }
  
//检查传递过来的$_GET['page']))的变量是否存在.如果存在就把它的值赋给$page
  
if(isset($_GET['page'
]))
  {
      
$page = intval($_GET['page'
]);
  }
  
//如果$_GET['page']))不存在,则证明你是第一次进入这本页面.我们将自动把当前页设为第一页
  
else
  {
      
$page = 1
;
  }
  
/*计算偏移量.当前页减去一再乘以每页显示的文章数量(我们定义的每页显示的数量为10,如果我们要显示第   五页的内容则如下的式子可以看成是这样的10*(5-1).)  */
  
$offset = $pagesize*($page-1
);
  
/*根据ID查寻数据库中的记录.倒序显示.从$offset篇记录开始后的$pagesize个记录(例如.从第40个记录这后的10篇记录.便是这样的limit 40,10)*/
  
$sql = "select * from xnhost order by xnhost_id desc limit $offset,$pagesize"
;
  
//得到查寻结果集  
  
$result = mysql_query($sql
);
  
//如果查寻失败
   
if (!$result
) {
        echo
"数据库查寻失败: " . mysql_error
();
        exit;
    }
  
//如果数据库中没有符合条件的记录
    
if (mysql_num_rows($result) == 0
) {
        echo
"数据库中没有符合条件的记录"
;
        exit;
    }
  
//遍历数据库中的数据.  
  
while ($row = mysql_fetch_assoc($result
)) {
        echo
"<pre>"
;
        echo
$row["xnhost_id"
];
        echo
$row["name"
];
        echo
$row["co_name"
];
        echo
"</pre>"
;
    }
    echo
"<div align=center style='font-size:14;color:#000000;'>"
;
    
//显示数总页数.这个变量在前面我们已经得到    
    
echo "总共有".$pages."页"
;
    
//显示当前页和总页数,可以方便的看到当前页在总页数中的位置
    
echo "[".$page."|".$pages."]"
;
    
//循环显示当前页之前的每一页的连接.
    
for($i=1;$i<$page;$i
++)
    echo
"<a href=fenye.php?page=".$i.">[".$i."]</a>"
;
    
//显示当前页的的标记.如果是5.那么就是第5页.
    
echo "<font style='font-size:14;color:#ff0000;'>[".$page."]</font>"
;
    
//循环显示当前页之后的每一页的连接
    
for($i=$page+1;$i<=$pages;$i
++)
    echo
"<a href=fenye.php?page=".$i.">[".$i."]</a>"
;
    echo
"</div>"
;
    
//打完收功.我们最后把数据库的门关上
    
mysql_close($link
);
?>


TAG: 电脑网络 分页 PHP教程

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

数据统计

  • 访问量: 5447
  • 日志数: 9
  • 文件数: 2
  • 建立时间: 2006-04-13
  • 更新时间: 2006-08-15

RSS订阅

Open Toolbar