php分页显示数据库内容

page.class.php类

<?php  

/* * *********************************************  
 * @类名:   page  
 * @参数:   $myde_total - 总记录数  
 *          $myde_size - 一页显示的记录数  
 *          $myde_page - 当前页  
 *          $myde_url - 获取当前的url  
 * @功能:   分页实现  
 * @作者:   宋海阁  
 */  

class page {  

    private $myde_total;          //总记录数  
    private $myde_size;           //一页显示的记录数  
    private $myde_page;           //当前页  
    private $myde_page_count;     //总页数  
    private $myde_i;              //起头页数  
    private $myde_en;             //结尾页数  
    private $myde_url;            //获取当前的url  
    /*  
     * $show_pages  
     * 页面显示的格式,显示链接的页数为2*$show_pages+1。  
     * 如$show_pages=2那么页面上显示就是[首页] [上页] 1 2 3 4 5 [下页] [尾页]   
     */  
    private $show_pages;  

    public function __construct($myde_total = 1, $myde_size = 1, $myde_page = 1, $myde_url, $show_pages = 2) {  
        $this->myde_total = $this->numeric($myde_total);  
        $this->myde_size = $this->numeric($myde_size);  
        $this->myde_page = $this->numeric($myde_page);  
        $this->myde_page_count = ceil($this->myde_total / $this->myde_size);  
        $this->myde_url = $myde_url;  
        if ($this->myde_total < 0)  
            $this->myde_total = 0;  
        if ($this->myde_page < 1)  
            $this->myde_page = 1;  
        if ($this->myde_page_count < 1)  
            $this->myde_page_count = 1;  
        if ($this->myde_page > $this->myde_page_count)  
            $this->myde_page = $this->myde_page_count;  
        $this->limit = ($this->myde_page - 1) * $this->myde_size;  
        $this->myde_i = $this->myde_page - $show_pages;  
        $this->myde_en = $this->myde_page + $show_pages;  
        if ($this->myde_i < 1) {  
            $this->myde_en = $this->myde_en + (1 - $this->myde_i);  
            $this->myde_i = 1;  
        }  
        if ($this->myde_en > $this->myde_page_count) {  
            $this->myde_i = $this->myde_i - ($this->myde_en - $this->myde_page_count);  
            $this->myde_en = $this->myde_page_count;  
        }  
        if ($this->myde_i < 1)  
            $this->myde_i = 1;  
    }  

    //检测是否为数字  
    private function numeric($num) {  
        if (strlen($num)) {  
            if (!preg_match("/^[0-9]+$/", $num)) {  
                $num = 1;  
            } else {  
                $num = substr($num, 0, 11);  
            }  
        } else {  
            $num = 1;  
        }  
        return $num;  
    }  

    //地址替换  
    private function page_replace($page) {  
        return str_replace("{page}", $page, $this->myde_url);  
    }  

    //首页  
    private function myde_home() {  
        if ($this->myde_page != 1) {  
            return "<a href='" . $this->page_replace(1) . "' title='首页'>首页</a>";  
        } else {  
            return "<p>首页</p>";  
        }  
    }  

    //上一页  
    private function myde_prev() {  
        if ($this->myde_page != 1) {  
            return "<a href='" . $this->page_replace($this->myde_page - 1) . "' title='上一页'>上一页</a>";  
        } else {  
            return "<p>上一页</p>";  
        }  
    }  

    //下一页  
    private function myde_next() {  
        if ($this->myde_page != $this->myde_page_count) {  
            return "<a href='" . $this->page_replace($this->myde_page + 1) . "' title='下一页'>下一页</a>";  
        } else {  
            return"<p>下一页</p>";  
        }  
    }  

    //尾页  
    private function myde_last() {  
        if ($this->myde_page != $this->myde_page_count) {  
            return "<a href='" . $this->page_replace($this->myde_page_count) . "' title='尾页'>尾页</a>";  
        } else {  
            return "<p>尾页</p>";  
        }  
    }  

    //输出  
    public function myde_write($id = 'page') {  
        $str = "<div id=" . $id . ">";  
        $str.=$this->myde_home();  
        $str.=$this->myde_prev();  
        if ($this->myde_i > 1) {  
            $str.="<p class='pageEllipsis'>...</p>";  
        }  
        for ($i = $this->myde_i; $i <= $this->myde_en; $i++) {  
            if ($i == $this->myde_page) {  
                $str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页' class='cur'>$i</a>";  
            } else {  
                $str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页'>$i</a>";  
            }  
        }  
        if ($this->myde_en < $this->myde_page_count) {  
            $str.="<p class='pageEllipsis'>...</p>";  
        }  
        $str.=$this->myde_next();  
        $str.=$this->myde_last();  
        $str.="<p class='pageRemark'>每页100条,共<b>" . $this->myde_page_count .  
                "</b>页<b>" . $this->myde_total . "</b>条记录</p>";  
        $str.="</div>";  
        return $str;  
    }  

}  

?>  

内容显示页面–数据库连接

$yhming = $_SESSION['user'];
require_once('../wtcl/page.class.php'); //分页类  
$showrow = 100; //一页显示的行数  
$curpage = empty($_GET['page']) ? 1 : $_GET['page']; //当前的页,还应该处理非数字的情况  
$url = "?page={page}"; //分页地址,如果有检索条件 ="?page={page}&q=".$_GET['q']  

$sql = "SELECT * FROM jsbb_nr WHERE jsbb_yhming='$yhming' ORDER BY jsbb_time DESC"; // asc或desc(即升级或降序)按用户显示WHERE jsbb_yhming='$yhming'
$total = mysql_num_rows(mysql_query($sql)); //记录总条数  
if (!empty($_GET['page']) && $total != 0 && $curpage > ceil($total / $showrow))  
    $curpage = ceil($total_rows / $showrow); //当前页数大于最后页数,取最后一页  
 $sql .= " LIMIT " . ($curpage - 1) * $showrow . ",$showrow;";  //获取数据
$rs_nr = mysql_query($sql); 

内容显示页面–数据显示

<?php while($row = mysql_fetch_array($rs_nr)){?>
<div style="width:200px; height: 20px;"><?=$row['jsbb_biaoti3']?>
//显示内容的代码,此处省略
<?php } ?>
div class="showPage">  
                    <?php  
                    if ($total > $showrow) {//总记录数大于每页显示数,显示分页  
                        $page = new page($total, $showrow, $curpage, $url, 2);  
                        echo $page->myde_write();  
                    }  
                    ?>  
                </div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值