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;

解决方案 »

  1.   

    <?
    /*这个是我做留言板时用到的,主要是要实现分页,
    并且在删除其中的某些记录后还不影响分页显示的效果
    */$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>";
    ?>
    ==============================
    以上是小弟写的,比较烂,不过功能实现了。
    希望对你有帮助。
      

  2.   

    上http://www.phpe.net搜一搜,有个分页的通用函数相当好使,我们单位那些同志一直都用它。实在懒得找的话短信我,我把代码给你(不一定能及时看到你的短信,请谅解)
      

  3.   


    <?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);