function page($_page_id = 1 , $_page_row = 30){
$s = "";
$_top = ($_page_id - 1) * $_page_row;
if($_top<0) $_top = 0;
$_page_id = $_page_id - 1;
$_where = $this->parse($_where);
$sqlstr = "select * from schools order by 排序字段 asc limit $_top ,$_page_row ";
$rs = query($sqlstr);
while ($r = fetch_array($rs)){
$_name = "<a href='page.php?id=" . $r["id"] . "' tile='点击这里查看详细资料' target='_blank' class='name'>" . trim($r["name"]) . "</a>";
}//while;
return $s;
}//end.page;
$s = "";
$_top = ($_page_id - 1) * $_page_row;
if($_top<0) $_top = 0;
$_page_id = $_page_id - 1;
$_where = $this->parse($_where);
$sqlstr = "select * from schools order by 排序字段 asc limit $_top ,$_page_row ";
$rs = query($sqlstr);
while ($r = fetch_array($rs)){
$_name = "<a href='page.php?id=" . $r["id"] . "' tile='点击这里查看详细资料' target='_blank' class='name'>" . trim($r["name"]) . "</a>";
}//while;
return $s;
}//end.page;
解决方案 »
- 如何根据数组里一个元素的值来转化分类数组?
- PHP 全局常量
- 哪位能够详解一下获得客户端ip地址的经典办法?
- 请问有没有方法判断一个request是否是从其它站点或页面用meta http-equiv="refresh"重定向过来的?
- 打开某个网页导致ie没有响应,这个网页有什么特殊的设置么?谢谢了。
- 想做成如下,改怎么写呢?
- php中怎样使system的输出立即发送到客户端?
- smarty 怎么在模板上循环遍历输出三维数据???
- php调用.net写的webservice的问题
- 有一个横向循环不会写了
- LINUX下PHP安装出错,怎么解决?
- 在线等,怎么用PHP打开另一个网站首页,并得到其登陆FORM内的一个元素?
/*这个是我做留言板时用到的,主要是要实现分页,
并且在删除其中的某些记录后还不影响分页显示的效果
*/$sql = mysql_query("Select * from note",$link); //连接数据表,假设表名为note,其中主键为id
//算出总共的页数
if($advise_num%5==0) //5条记录为一页,如果修改5为其他得数值可实现任意条记录一页
{
$page_all=(int)($advise_num/5);
}
else
{
$page_all=(int)($advise_num/5)+1;
}
?><?
/*打算在链接后面传递数值以给出要链接的页面
如果开玩笑给出$page = 3.5,那么就到第一页。
当然这段也可以不要的
*/
if($page<1 || $page>$page_all)
{
$page =1;
}
$page=(int)($page);
?><?
$id_num = $page*5-4; //$id_num得到当前页面应该从数据表的哪条记录开始读取
$sql = mysql_query("Select id from note order by id desc limit $id_num",$link);
while($array = mysql_fetch_array($sql))
{
$sql_num = $array[0]; //得到$sql_num是当前页面需要读取的第一条记录的id
}
?><?
/*这句代码是在上面得到id的基础上再选择5条记录
这样处理就不用担心其中某条记录删除导致id不连续而影响分页。*/
$sql = mysql_query("Select * from note WHERE id<= $sql_num order by id DESC limit 5",$link);
?><?
/*
这个不用我说了吧?就是链接到上一页与下一页的方法了。
*/
$up_page = $page -1;
down_page = $page +1;
echo"<a href =\"index.php?page=$up_page\">上一页</a>";
echo"<a href =\"index.php?page=$down_page\">下一页</a>";
?>
==============================
以上是小弟写的,比较烂,不过功能实现了。
希望对你有帮助。
<?php
/*
***************************************************
*说明:分页类
*作者:ghjhot
*公司:bobaoo
*时间:2006-08-04 15:55:29
***************************************************
*/
Class gpage
{
var $page; //传入
var $perpage; //传入
var $sql; //传入
var $url="";//传入
var $tag = 1; //分页显示模式
var $allcount; //传入
var $showpages=5;//模式为3时 选择的页码显示数
var $allpage,$pagestr,$pagesql;
/*
*************************************************
*功能:分页 赋予结果
*************************************************
*/
function splitpage()
{
$this->allpage = intval(($this->allcount-1)/$this->perpage)+1; //总页数 if ($this->page<1){
$this->page=1;
}
$ap = $this->allpage;
if ($this->page>$ap){
$this->page=$ap;
}
switch ($this->tag) {
case 1:
$this->show();
break;
case 2:
$this->showtext();
break;
case 3:
$this->showNext();
break;
} $CurrentRecord = ($this->page-1)*$this->perpage;
if($CurrentRecord<0)
{
$CurrentRecord=0;
}
$this->pagesql = $this->sql." limit $CurrentRecord,".$this->perpage;
}
/*
*************************************************
*功能:分页标签的显示方式 1 2 3 4 5 6 tag=1
*************************************************
*/
function show()
{
for ($i=1;$i<=$this->allpage;$i++){
if($i==$this->page)
{
$istr=$istr.'<strong>'.$i.'</strong> ';
}
else
{
$istr=$istr.'<a href="?page='.$i.$this->purl.'">'.$i.'</a> ';
}
}
$this->pagestr = "第 ".$istr." 页";
}
/*
*************************************************
*功能:分页标签的显示方式 页码:1 2 3 4 5 下5页
*************************************************
*/
function showNext()
{
$p=$this->showpages;
$n=ceil($this->page/$p);
if($n==""||$n==0)
{
$n=1;
}
$st = ($n-1)*$p+1;
$en = $n*$p;
if($en>$this->allpage)
{
$en = $this->allpage;
}
for ($i=$st;$i<=$en;$i++){
if($i==$this->page)
{
$istr=$istr.'<strong>'.$i.'</strong> ';
}
else
{
$istr=$istr.'<a href="?page='.$i.$this->purl.'">'.$i.'</a> ';
}
}
$pstr= " ".$istr;
if($n>1)
{
$r=($n-2)*$p+1;
$pstr = "<a href=\"?page=".$r.$this->purl."\">上".$p."页</a>".$pstr;
}
if(($this->allpage>$p)&&($en<$this->allpage))
{
$pstr .= "<a href=\"?page=".$i.$this->purl."\">下".$p."页</a>";
}
$this->pagestr = $pstr;
}
/*
*************************************************
*功能:分页标签的显示方式 第一页 上一页 tag=2
*************************************************
*/
function showtext()
{
if($this->page==1)
{
$frist = " 第一页";
$pre = " 上一页 ";
}
else
{
$f = 1;
$p = $this->page-1;
$frist='<a href="?page='.$f.$this->purl.'">第一页</a> ';
$pre='<a href="?page='.$p.$this->purl.'">上一页</a> ';
} if($this->page==$this->allpage)
{
$next = " 下一页";
$last = " 末一页";
}
else
{
$n = $this->page+1;
$l = $this->allpage;
$next='<a href="?page='.$n.$this->purl.'">下一页</a> ';
$last='<a href="?page='.$l.$this->purl.'">末一页</a> ';
}
$tbstart = "<table><form name=frmpage method=get action='?'><tr><td>";
$antag = "第".$this->page."页 共".$this->allpage."页";
$frm = " <input type=text name=page size=2 value='".$this->page."'> <input type=submit value=go name=i> ";
$tbend = "</td></tr></form></table>";
$this->pagestr = $tbstart.$frist.$pre.$next.$last.$frm.$antag.$tbend; } /*
*************************************************
*功能:分页标签的显示方式 第一页 上一页 tag=2
*************************************************
*/
}
?>
用法$pag = new gpage;
if(!isset($page)){
$page = 1;
}
$allcount = $db->QueryItem("select count(0) from money".$cond);
$pag->allcount =$allcount;
$pag->perpage = 3;
$pag->page = $page;
$pag->tag = 2;
$pag->showpages = 5;
$pag->sql = $sql;
$pag->purl = "&name=$name";
$pag->splitpage();
$sql = $pag->pagesql;
$pagestr = $pag->pagestr; //bar$list =$db->QueryArray($sql);