zoukankan      html  css  js  c++  java
  • Ecmall系统自带的分页功能

    在Ecmall的二次开发中,分页是必不可少的。这个系统已经自带了分页功能,下面来看看如何使用这个分页。

    下面是一个自定义的类,用于查看订单的详细情况。关键在于get_order_data()这个方法,分页的使用也在这个方法的内部了。应该有的注释都有了,应该会比较容易懂,我不就多说了。

    <?php
    define('NUM_PER_PAGE', 15);        // 每页显示数量
    
    class NowaMagicApp extends MallbaseApp  
    {  
        public function index()  
        {
            /* 分页信息 */
            $page = $this->_get_page(NUM_PER_PAGE);
            $page['item_count'] = $stats['total_count'];
            $this->_format_page($page);
            $this->assign('page_info', $page);
    
             $this->display('gorder.index.html');   
        }  
        
        /* 订单记录 */
        function orderslog()
        {
            $goods_id = empty($_GET['id']) ? 0 : intval($_GET['id']);
            if (!$goods_id)
            {
                $this->show_warning('Hacking Attempt');
                return;
            }
            
            $data = $this -> get_order_data($goods_id);
            
            if ($data === false)
            {
                return;
            }
            
            $this->assign('order', $data);
    
            $this->display('gorder.index.html');
    
        }
        
        function get_order_data($goods_id)
        {
            //clean_cache();
            $cache_server =& cache_server();
            //print_r($cache_server);
            $key = 'order_' . $goods_id;
            //$key = $this->_get_cache_id();
            $r = $cache_server->get($key);
            $cached = true;
            
            $db = &db();
            
            $sql = "select count(*)
                    from shop_order a, shop_order_extm b, shop_order_goods c
                    where a.order_id = b.order_id and b.order_id = c.order_id
                    and c.goods_id = '".$goods_id."'
                    and a.status != '11'
                    and a.status != '0'
                    and a.status != '20'
                    order by a.add_time desc ";
            //echo $sql;
            $num = $db -> getone($sql);                //求出总记录数
            $page = $this->_get_page(NUM_PER_PAGE);    //每页显示的条数,默认是10条
            $page['item_count'] = $num;                // 返回一个数组$page,$page['limit']=0,10
            $this->_format_page($page);                //格式化分页
            
            $sql2 = "select a.order_id, a.buyer_name, a.add_time, a.status, b.phone_tel, b.phone_mob, b.consignee, c.price, c.quantity, c.goods_id 
                    from shop_order a, shop_order_extm b, shop_order_goods c
                    where a.order_id = b.order_id and b.order_id = c.order_id
                    and c.goods_id = '".$goods_id."'
                    and a.status != '11'
                    and a.status != '0'
                    and a.status != '20'
                    order by a.add_time desc limit ".$page['limit'];
            
            $result = $db -> query($sql2);
            
            $this -> assign('page_info',$page);     //向模板页传递页数
            $this -> assign('que',$sql2);     //向模板页传递查询结果
            
            //$r = array();
            while($myrow = $db -> fetch_array($result))
            {
                $r[] = $myrow;
            }
    
            $cache_server->set($key, $r, 1);
            return $r;
        }
        
    }
    
    ?>

    简化如下:

    Define("LIMIT",10);
    $goods_mod = & db('test');//构建实体模型(操作表)
          $count = 'select count(id) from test';
          $num = $goods_mod -> getone($count);//求出总记录数
          
          $page = $this->_get_page(LIMIT);//每页显示的条数,默认是10条
          $page['item_count'] = $num;// 返回一个数组$page,$page['limit']=0,10
          $this->_format_page($page);//格式化分页
          $sql = 'select id,title,content from test order by id desc limit '.$page['limit']; 
          $que = $goods_mod -> getAll($sql);//查询记录
          $this -> assign('page_info',$page); //向模板页传递页数
          $this -> assign('que',$que); //向模板页传递查询结果
  • 相关阅读:
    [恢]hdu 2005
    [恢]hdu 2004
    [恢]hdu 1093
    [恢]hdu 1092
    [恢]hdu 2008
    [恢]hdu 1091
    [恢]hdu 2006
    [恢]hdu 1089
    [恢]hdu 1094
    OGRE小记
  • 原文地址:https://www.cnblogs.com/farcall/p/3765049.html
Copyright © 2011-2022 走看看