PHP实现分页

来源:互联网 发布:sql删除数据库命令 编辑:程序博客网 时间:2024/06/08 11:58
<?php
require_once 'DAOMySQLi.class.php';
$option=array(
    'host'=>'localhost',
    'user'=>'root',
    'pwd'=>'admin',
    'port'=>3306,
    'db'=>'test',
    'charset'=>'utf8'
);
$dao=DAOMySQLi::getSingleton($option);

require_once '4.php';//引入分页类

//

<?php
class Page{
    private $total_page=600;//总记录数
    private $pagesize=6;//一页显示多少记录
    private $now_page=7;//当前页
    private $url='3.php';//请求链接
    
    public function __set($p,$v){
        if(property_exists($this,$p)){
            $this->$p=$v;
        }
    }
    public function __get($p){
        if(property_exists($this,$p)){
            return $this->$p;
        }
    }
    public function create(){
        $first=1;
        $first_active=$this->now_page==1?'active':'';//设置点击当前页首页时高亮
        $url=$this->url.'?page=';
        $page=<<<HTML
        <ul class="pagination">
        <li class="$first_active"><a href="$url$first">首页</a></li>
HTML;
       
        $page_cout=ceil($this->total_page/$this->pagesize);
        for($i=$this->now_page-3;$i<=$this->now_page+3;$i++){
            if($i<2||$i>$page_cout-1){
                continue;
            }
            $active=$this->now_page==$i?'active':'';//循环里的就点那个亮那个
          $page.=<<<HTML
          <li class="$active"><a href="$url$i">$i</a></li>
HTML;
            
            
        }
$last_active=$this->now_page==$page_cout?'active':'';
            $page.=<<<HTML
            <li class="$last_active"><a href="$url$i">尾页</a></li>
            </ul>
HTML;
            return $page;
        
    }
}





//

$page=new Page();//实例化
$sql='SELECT count(*) AS total FROM goods';
$total=$dao->fetchOne($sql);//查出数据库的总记录数
$page->total_page=$total['total'];
$page->pagesize=5;//设置一页的记录数
$page->now_page=isset($_GET['page'])?$_GET['page']:1;


$offset=($page->now_page-1)*$page->pagesize;//查出当前页从数据库那条记录开始
$limit=$page->pagesize;//从那条记录结束
$sqll="SELECT * FROM goods limit $offset,$limit";
$goods_list=$dao->fetchAll($sqll);//查询当前页所有记录数

require_once '2.template.php';//显示数据的模板

//

<table>
<tr>
<th>序号</th>
<th>商品名称</th>
<th>商品价格</th>
</tr>
<?php foreach ($goods_list as $v):?>
<tr>
<td><?php echo $v['goods_id'];?></td>
<td><?php echo $v['goods_name'];?></td>
<td><?php echo $v['shop_price'];?></td>
</tr>
<?php endforeach;?>
</table>

//


$ul=$page->create();
echo $ul;
?>