立即注册
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广州大学城网业务调整

PHP分页代码 [复制链接] qrcode

查看: 3418 | 回复: 1

asper
发表于: 2008-5-25 09:21:58 | 显示全部楼层

page.inc.php代码如下:
<?php
//分页显示
function   pageft($totle,$displaypg,$url= ' '){

//定义几个全局变量:   
//$page:当前页码;
//$firstcount:(数据库)查询的起始项;
//$pagenav:页面导航条代码,函数内部并没有将它输出;
//$_SERVER:读取本页URL“$_SERVER[ "REQUEST_URI "]”所必须。
global   $page,$firstcount,$pagenav,$_SERVER;

//为使函数外部可以访问这里的“$displaypg”,将它也设为全局变量。注意一个变量重新定义为全局变量后,原值被覆盖,所以这里给它重新赋值。
$GLOBALS[ "displaypg "]=$displaypg;

if(!$page)   $page=1;

//如果$url使用默认,即空值,则赋值为本页URL:
if(!$url){   $url=$_SERVER[ "REQUEST_URI "];}

//URL分析:
$parse_url=parse_url($url);
$url_query=$parse_url[ "query "];   //单独取出URL的查询字串
if($url_query){
//因为URL中可能包含了页码信息,我们要把它去掉,以便加入新的页码信息。
//这里用到了正则表达式,请参考“PHP中的正规表达式”(http://www.pconline.com.cn/pcedu/empolder/wz/php/10111/15058.html
$url_query=ereg_replace( "(^|&)page=$page ", " ",$url_query);

//将处理后的URL的查询字串替换原来的URL的查询字串:
$url=str_replace($parse_url[ "query "],$url_query,$url);

//在URL后加page查询信息,但待赋值:   
if($url_query)   $url.= "&page ";   else   $url.= "page ";
}else   {
$url.= "?page ";
}

//页码计算:
$lastpg=@ceil($totle/$displaypg);   //最后页,也是总页数
$page=min($lastpg,$page);
$prepg=$page-1;   //上一页
$nextpg=($page==$lastpg   ?   0   :   $page+1);   //下一页
$firstcount=($page-1)*$displaypg;

//开始分页导航条代码:
$pagenav= "显示第   <B> ".($totle?($firstcount+1):0). " </B> - <B> ".min($firstcount+$displaypg,$totle). " </B>   条记录,共   $totle   条记录  ";

//如果只有一页则跳出函数:
if($lastpg <=1)   return   false;

$pagenav.= "   <a   href= '$url=1 '> 首页 </a>   ";
if($prepg)   $pagenav.= "   <a   href= '$url=$prepg '> 上一页 </a>   ";   else   $pagenav.= "   上一页   ";
if($nextpg)   $pagenav.= "   <a   href= '$url=$nextpg '> 下一页 </a>   ";   else   $pagenav.= "   下一页   ";
$pagenav.= "   <a   href= '$url=$lastpg '> 尾页 </a>   ";

//下拉跳转列表,循环列出所有页码:
$pagenav.= " 到第   <select   name= 'topage '   size= '1 '   onchange= 'window.location=\ "$url=\ "+this.value '> \n ";
for($i=1;$i <=$lastpg;$i++){
if($i==$page)   $pagenav.= " <option   value= '$i '   selected> $i </option> \n ";
else   $pagenav.= " <option   value= '$i '> $i </option> \n ";
}
$pagenav.= " </select>   页,共   $lastpg   页 ";
}
?>
file_list.php代码如下:
<?php
@session_start();
if($_SESSION[ 'admin_name ']== " ")
{
echo   " <script> location.href= 'login.php '; </script> ";
}
include_once( "../class/trimdata.php ");
include_once( "./header.php ");
include_once( "../class/page.inc.php ");
$listflag=true;
$trimdata   =   new   trimdata();
$displaypage= "file_list.htm ";
$page   =   $_GET[ 'page '];
!isset($page)?$page=1:$page=$page;
$smarty-> assign( "page ",   $page);
$sql   =   "SELECT   f_id   FROM   ` ".$dbhead. "file` ";
//$orderby   = "n_date ";
$sql_select=$db-> sql_query($sql);
$countRow   =$db-> sql_numrows($num);
$countRow> 0?pageft($countRow,15):pageft($countRow,0);
//$sql2   =   "SELECT   *   FROM   ` ".$dbhead. "file`   order   by   f_id   desc   limit   ".$firstcount. ", ".$displaypg;
$sql2   =   "SELECT   f.*,c.name   as   type   FROM   ` ".$dbhead. "file`   as   f   left   join   ` ".$dbhead. "channel`   as   c   on   f.fc_id=c.c_id   order   by   f.f_id   desc   limit   ".$firstcount. ", ".$displaypg;

$result2   =   $db   ->   sql_query($sql2);
while($arr   =   $db   ->   sql_fetchrow($result2))
{
$arr[ 'place ']   =   getSuffix($arr[ 'f_place ']);
$arrRow[]   =   $arr;
}

$datas=$trimdata-> arraysdeals($arrRow);
$smarty-> assign( "file ",   $arrRow);
$smarty-> assign( "showpages ",   $pagenav);
function   getSuffix($file)
{
$arr=explode( ". ",$file);
return   $arr[count($arr)-1];
}
include_once( "./display.php ");
?>
跳转到指定楼层
asper
发表于: 2008-5-25 09:22:36 | 显示全部楼层

更简单的:

一个简单的PHP分页代码
【 标签:mysql,php,myrow,numrows,td 】【 发布时间:2008-01-16 】上一篇  下一篇   

??$pagesize=10; //设置每一页显示的记录数
??$c("localhost","root",""); //连接数据库
??$rs=mysql_query("select count(*) from tb_product",$conn); //取得记录总数$rs
??$myrow = mysql_fetch_array($rs);
??$numrows=$myrow[0];
??
??//计算总页数
??
??$pages=intval($numrows/$pagesize);
??
??//判断页数设置
??
??if (isset($_GET['page'])){
?? $page=intval($_GET['page']);
??}
??else{
?? $page=1; //否则,设置为第一页
??}
??完整代码
??<?php
?? $c("localhost","root","");
?? //设定每一页显示的记录数
?? $pagesize=10;
?? mysql_select_db("mydata",$conn);
?? //取得记录总数$rs,计算总页数用
?? $rs=mysql_query("select count(*) from tb_product",$conn);
?? $myrow = mysql_fetch_array($rs);
?? $numrows=$myrow[0];
?? //计算总页数
??
?? $pages=intval($numrows/$pagesize);
?? if ($numrows%$pagesize)
??  $pages++;
?? //设置页数
?? if (isset($_GET['page'])){
??  $page=intval($_GET['page']);
?? }
?? else{
??  //设置为第一页
??  $page=1;
?? }
?? //计算记录偏移量
?? $offset=$pagesize*($page - 1);
?? //读取指定记录数
?? $rs=mysql_query("select * from myTable order by id desc limit $offset,$pagesize",$conn);
?? if ($myrow = mysql_fetch_array($rs))
?? {
??  $i=0;
??  ?>
??  <table border="0" width="80%">
??  <tr>
??   <td width="50%" bgcolor="#E0E0E0">
??    <p align="center">标题</td>
??    <td width="50%" bgcolor="#E0E0E0">
??    <p align="center">发布时间</td>
??  </tr>
??  <?php
??   do {
??    $i++;
??    ?>
??  <tr>
??   <td width="50%"><?=$myrow["news_title"]?></td>
??   <td width="50%"><?=$myrow["news_cont"]?></td>
??  </tr>
??   <?php
??   }
??   while ($myrow = mysql_fetch_array($rs));
??    echo "</table>";
??  }
??  echo "<div align='center'>共有".$pages."页(".$page."/".$pages.")";
??  for ($i=1;$i< $page;$i++)
??   echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> ";
??   echo "[".$page."]";
??   for ($i=$page+1;$i<=$pages;$i++)
??    echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> ";
??    echo "</div>";
??   ?>
快速回复 返回顶部 返回列表