就是将查询出来的数据显示,要求每页显示5行,希望能有比较简单的分页函数

解决方案 »

  1.   

    <?php
    $coon = mysql_connect("localhost","root","admin");
    mysql_select_db("book2");
    mysql_query("set names 'gbk'");
    $pagesize = 5; //分页的页数
    $off = ($p-1)*$pagesize;//分页的起始
    $p = $_GET["p"]?$_GET["p"]:1;
     
     
    $s1 = mysql_query("select *from msg order by id limit $off,$pagesize");//分页查询SQL语句
    while($row = mysql_fetch_array($s1)){
    echo "<table border='1' align='center'><tr><td>";
    echo "你的名字:".$row["name"]."<br />" ; //将结果输出
    echo "</td></tr></table>";
    }
    //$count_result = mysql_query("select count(*) as count from msg");//查询有多少条数据
    $a = mysql_num_rows(mysql_query("select *from msg")); //同上,查询有多少条数据
    //$count_array = mysql_fetch_array($count_result);
    $pagenum = ceil($a/$pagesize);
    echo "当前一共有".$a."留言";
    if($pagenum >1){
    for($i=1;$i<=$pagenum;$i++){
    if($i==$p){ 
    echo "[".$i."]";
    }else{
    echo "<a href=?p=".$i.">". $i ."</a>";
    }
    }
    }
    ?>
      

  2.   


    <?php
    /**
     * 一个用于Mysql数据库的分页类
     *
     * @author      Avenger <[email protected]>
     * @version     1.0
     * @lastupdate  2003-04-08 11:11:33
     *
     *
     * 使用实例:
     * $p = new show_page; //建立新对像
     * $p->file="ttt.php"; //设置文件名,默认为当前页
     * $p->pvar="pagecount"; //设置页面传递的参数,默认为p
     * $p->setvar(array("a" => '1', "b" => '2')); //设置要传递的参数,要注意的是此函数必须要在 set 前使用,否则变量传不过去
     * $p->set(20,2000,1); //设置相关参数,共三个,分别为'页面大小'、'总记录数'、'当前页(如果为空则自动读取GET变量)'
     * $p->output(0); //输出,为0时直接输出,否则返回一个字符串
     * echo $p->limit(); //输出Limit子句。在sql语句中用法为 "SELECT * FROM TABLE LIMIT {$p->limit()}";
     *
     */
    class show_page {    /**
         * 页面输出结果
         *
         * @var string
         */
    var $output;    /**
         * 使用该类的文件,默认为 PHP_SELF
         *
         * @var string
         */
    var $file;    /**
         * 页数传递变量,默认为 'p'
         *
         * @var string
         */
    var $pvar = "p";    /**
         * 页面大小
         *
         * @var integer
         */
    var $psize;    /**
         * 当前页面
         *
         * @var ingeger
         */
    var $curr;    /**
         * 要传递的变量数组
         *
         * @var array
         */
    var $varstr;    /**
         * 总页数
         *
         * @var integer
         */
        var $tpage;    /**
         * 分页设置
         *
         * @access public
         * @param int $pagesize 页面大小
         * @param int $total    总记录数
         * @param int $current  当前页数,默认会自动读取
         * @return void
         */
        function set($pagesize=20,$total,$current=false) {
    global $HTTP_SERVER_VARS,$HTTP_GET_VARS; $this->tpage = ceil($total/$pagesize);
    if (!$current) {$current = $HTTP_GET_VARS[$this->pvar];}
    if ($current>$this->tpage) {$current = $this->tpage;}
    if ($current<1) {$current = 1;} $this->curr  = $current;
    $this->psize = $pagesize; if (!$this->file) {$this->file = $HTTP_SERVER_VARS['PHP_SELF'];} if ($this->tpage > 1) {
                
    if ($current>10) {
    $this->output.='<a href='.$this->file.'&'.$this->pvar.'='.($current-10).($this->varstr).' title="前十页">&lt;&lt;&lt;</a>&nbsp;';
    }
                if ($current>1) {
    $this->output.='<a href='.$this->file.'&'.$this->pvar.'='.($current-1).($this->varstr).' title="前一页">&lt;&lt;</a>&nbsp;';
    }            $start = floor($current/10)*10;
                $end = $start+9;            if ($start<1) {$start=1;}
                if ($end>$this->tpage) {$end=$this->tpage;}            for ($i=$start; $i<=$end; $i++) {
                    if ($current==$i) {
                        $this->output.='<font color="red">'.$i.'</font>&nbsp;';    //输出当前页数
                    } else {
                        $this->output.='<a href="'.$this->file.'&'.$this->pvar.'='.$i.$this->varstr.'">['.$i.']</a>&nbsp;';    //输出页数
                    }
                }            if ($current<$this->tpage) {
    $this->output.='<a href='.$this->file.'&'.$this->pvar.'='.($current+1).($this->varstr).' title="下一页">&gt;&gt;</a>&nbsp;';
    }
                if ($this->tpage>10 && ($this->tpage-$current)>=10 ) {
    $this->output.='<a href='.$this->file.'&'.$this->pvar.'='.($current+10).($this->varstr).' title="下十页">&gt;&gt;&gt;</a>';
    }
    }
    }    /**
         * 要传递的变量设置
         *
         * @access public
         * @param array $data   要传递的变量,用数组来表示,参见上面的例子
         * @return void
         */
    function setvar($data) {
    foreach ($data as $k=>$v) {
    $this->varstr.='&amp;'.$k.'='.urlencode($v);
    }
    }    /**
         * 分页结果输出
         *
         * @access public
         * @param bool $return 为真时返回一个字符串,否则直接输出,默认直接输出
         * @return string
         */
    function output($return = false) {
    if ($return) {
    return $this->output;
    } else {
    echo $this->output;
    }
    }    /**
         * 生成Limit语句
         *
         * @access public
         * @return string
         */
    function limit() {
    return (($this->curr-1)*$this->psize).',每页显示'.$this->psize."条";
    }} //End Class
    ?>调用<?php
    require('../lib/my_page_class.php');
    // 方法调用:
    $p = new show_page; //建立新对像
    $p->file="list.php?l_id=".$l_id; //设置文件名,默认为当前页
    $p->pvar="page"; //设置页面传递的参数,默认为p
    $p->setvar(array("a" => '1', "b" => '2')); //设置要传递的参数,要注意的是此函数必须要在 set 前使用,否则变量传不过去
    $p->set($m_page,$count,""); //设置相关参数,共三个,分别为'页面大小'、'总记录数'、'当前页(如果为空则自动读取GET变量)'
    $p->output(0); //输出,为0时直接输出,否则返回一个字符串echo $p->limit(); //输出Limit子句。在sql语句中用法为 "SELECT * FROM TABLE LIMIT {$p->limit()}";
    ?>
      

  3.   

    function to_pages_for_tables_by_id($table, $page=1 ,$per_counts=10){
    $start = ($page -1)*$per_counts;
    $sql = "select * from $table limit $start , $per_counts" ;
    $query = mysql_query($sql);
    $flag =0;
    while($row=mysql_fetch_array($query)){
    $html.="<form method='post' action='./common/modify.php'>";
    for($i=0 ;$i<(count($row)/2);$i++){
    $html.="<input name='$i' value='".$row[$i]."'/>&nbsp";
    }
    $html.="<input type='hidden' value='$page' name='page'/>
    <input type='hidden' value='$per_counts' name='per_counts'/>
    <input type='hidden' value='$table' name='table'/>
    <input type='submit' value='修改'/>
    &nbsp;&nbsp;
    <a href='./common/delete.php?table=$table&id=$row[id]&page=$page&per_counts=$per_counts'>删除</a></form>";
    }
    $sql1 = "select * from $table";
    $query1= mysql_query($sql1);
    while($row1=mysql_fetch_array($query1)){
    $arrrr[] = $row1;
    }

    $total_page = (int)(count($arrrr)/$per_counts )+ 1;
    $before_page =$page -1;
    $next_page =$page + 1;
    $html.="<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <a href='?table=$table&page=1&per_counts=$per_counts'><<</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <a href='?table=$table&page=$before_page&per_counts=$per_counts'><</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <a href='?table=$table&page=$next_page&per_counts=$per_counts'>></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <a href='?table=$table&page=$total_page&per_counts=$per_counts'>>></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    return $html;
    }
    带删除和修改按钮,不需要的话,删掉即可,
    很烂,呵呵
      

  4.   


    参考:
    php分页的实现