用PHP如何实现分页并能够实现上一页,下一页,跳转到()页的功能?

举个例子:首页 上一页 12345... 下一页 尾页 跳转到【】页 这样的模式,
如果能够实现这个更好啦:
若页数多了的话省略号还会随着页数的推进而改变入:3456789...
我初学PHP,请各位高手帮忙啊!

<html><head>
<title>分页示例(php</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<?php
$pagesize=10; //设定每一页显示的记录数

$conn=mysql_connect("localhost","root","jrq");
mysql_select_db("sj",$conn);
$rs = mysql_query( "select * from `dw_newsdata`",$conn); //这里有第二个可选参数,指定打开的连接
//-----------------------------------------------------------------------------------------------//
//分页逻辑处理
//-----------------------------------------------------------------------------------------------
$tmpArr = mysql_fetch_array($rs);
$numAL = mysql_num_rows($rs); //取得记录总数$rs
$pages=intval($numAL/$pagesize); //计算总页数

if ($numAL % $pagesize) $pages++;

//设置缺省页码
//↓判断“当前页码”是否赋值过
if (isset($_GET['page'])){ $page=intval($_GET['page']); }else{ $page=1; }//否则,设置为第一页

//↓计算记录偏移量
$offset=$pagesize*($page - 1);

//↓读取指定记录数
$rs=mysql_query("select * from `dw_newsdata` limit $offset,$pagesize",$conn);//取得—当前页—记录集!
$curNum = mysql_num_rows($rs); //$curNum - 当前页实际记录数,for循环输出用
?>
<table border="0" width="80%">
<tr>
<td width="50%" bgcolor="#E0E0E0">标题</td>
<td width="50%" bgcolor="#E0E0E0">发布时间</td>
</tr>

<?php
while ($tmpArr = mysql_fetch_array($rs)) //提取一行,并循环判断
{
$i=0;

// for($a=0;$a<$ColNum;$a++) //==for结束==
?>
<tr>
<td width="50%"><?= $tmpArr[1]; //$tmpArr["news_title"] ; ?></td>
<td width="50%"><?php echo $tmpArr[2]; //$tmpArr["news_cont"]; ?></td>
</tr>

<?php

}//==while结束==
?>
</table>

<?php
//============================//
// 翻页显示 一
//============================//
echo "<p>"; // align=center
$first=1;
$prev=$page-1;
$next=$page+1;
$last=$pages;

if ($page > 1)
{
echo "<a href='?page=".$first."'>首页</a> ";
echo "<a href='?page=".$prev."'>上一页</a> ";
}

if ($page < $pages)
{
echo "<a href='?page=".$next."'>下一页</a> ";
echo "<a href='?page=".$last."'>尾页</a> ";
}

//============================//
// 翻页显示 二
//============================//
echo " | 共有".$pages."页(".$page."/".$pages.")";

for ($i=1;$i< $page;$i++){echo "<a href='?page=".$i."'>[".$i ."]</a> ";} // 1-先输出当前页之前的

if ($page > 0) echo "[".$page."]";; // 2-再输出当前页

for ($i=$page+1;$i<=$pages;$i++){echo "<a href='?page=".$i."'>[".$i ."]</a> ";}// 3-接着输出当前页之后

echo "转到第 <INPUT maxLength=3 size=3 value=".($page+1)." name=gotox> 页 <INPUT hideFocus onclick=\"location.href='?page=gotox.value';\" type=button value=Go name=cmd_goto>";

echo "</p>";

?>

</body>
</html>
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-14
现在这种分页控件很多。。
手写的话 就是SQL + LIMIT 用URL 传参数来判断获取数据并显示
推进只是显示的时候做下判断就可以
自己实现的话 不难就是繁琐
第2个回答  2011-04-14
history.back ??

用PHP如何实现分页并能够实现上一页,下一页,跳转到()页的功能?
if (isset($_GET['page'])){ $page=intval($_GET['page']); }else{ $page=1; }\/\/否则,设置为第一页 \/\/↓计算记录偏移量 offset=$pagesize*($page - 1);\/\/↓读取指定记录数 rs=mysql_query("select * from `dw_newsdata` limit $offset,$pagesize",$conn);\/\/取得—当前页—...

PHP,在html中怎样实现分页代码:首页、下一页、上一页、尾页???
echo "下一页";}else{ if ($pageval*$pagesize>=$rows){ echo "上一页";}else{ echo "上一页 "."下一页";} } } echo "";sqli="select * from tb_info limit $page,$pagesize";que=mysql_query($sqli);while($row=mysql_fetch_array($que)){ echo $row['type'].""...

thinkphp分页时 怎么取得 上一页下一页的传递变量 就是我想不用原来的...
public function index() {\/\/把图标改一下样式就可以了 $user = M('User'); import('ORG.Util.Page'); $count = $user->count(); $listRows = 5; $page = new Page($count, $listRows); $list = $user->limit("{$page->firstRow},{$page->listRows}")->s...

...下一页 尾页 转到第 “口 ”页 确定 共6页,求php代码关键是手动输入...
\/\/下拉跳转页面 function JumpPage() { Jump = " 当前第 ".$this->PageNum()." 页 共 ".$this->PageCount()." 页 跳到 ";for ($i=1; $i<=$this->PageCount(); $i++) { if ($i==$this->PageNum())Jump .= "Url($this->LinkAry)."&page=".$i."\\" selected>$i"...

PHP分页显示制作详解
以下代码中的数据库连接是使用的pear db类进行处理 <?php \/\/ FileName: Pager.class.php \/\/ 分页类,这个类仅仅用于处理数据结构,不负责处理显示的工作 Class Pager { var $PageSize; \/\/每页的数量 var $CurrentPageID; \/\/当前的页数 var $NextPageID; \/\/下一页 var $PreviousPageID; \/\/上一页 var...

PHP分页问题. 望大虾开示
1.$_GET[page] 是你点击 上一页 或者 下一页 传递过来的, 当你的页面初始化的时候 也就是你没还没点击上一页 下一页 的时候 他应该是0 2.$page.=','; 这个的意思是 $page = $page . ','; 他是用来拼写SQL 语句的 拼写后 你的SQL 应该是 select * from message li...

PHP分页原理是怎么样的
至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。前10条记录:select * from ...

phpweb怎么加文章上一篇下一篇翻页
lastpg = ceil($totle \/ $displaypg); \/\/最后页,也是总页数 page = min($lastpg, $page);prepg = $page -1; \/\/上一页 nextpg = ($page == $lastpg ? 0 : $page +1); \/\/下一页 firstcount = ($page -1) * $displaypg;\/\/开始分页导航条代码:pagenav = "显示第 <B>"...

php遍历文件并分页.
echo "共".$pages."页 第".$page."页 ";if($page>1)echo "上页";if($page<$pages)echo "下页";echo "";for($i=($page-1)*$pagesize;$i<$page*$pagesize;$i++) { if(!isset($ar[$i]))break;echo $ar[$i]."";} ?> ...

用Dreamweaver怎么做页面的翻页以及上一页和下一页?
这个将dreamweaver启动后,切换到代码模试就可以编写程序了 这种动态网站程序都要连接数据库,然后计算显示记录的数量及每页要显示的数量来分页。这里以php为例 这是一个分页的类代码 <?php class Page { private $total; \/\/总记录 private $pagesize; \/\/每页显示多少条 private $limit; \/\/...

相似回答