<ecmall>Ecmall系统自带的分页功能

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

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

01<?php 
02define('NUM_PER_PAGE', 15);        // 每页显示数量 
03  
04classNowaMagicApp extendsMallbaseApp   
05{   
06    publicfunctionindex()   
07    { 
08        /* 分页信息 */
09        $page= $this->_get_page(NUM_PER_PAGE); 
10        $page['item_count'] = $stats['total_count']; 
11        $this->_format_page($page); 
12        $this->assign('page_info', $page); 
13  
14        $this->display('gorder.index.html');    
15    }   
16      
17    /* 订单记录 */
18    functionorderslog() 
19    { 
20        $goods_id= empty($_GET['id']) ? 0 : intval($_GET['id']); 
21        if(!$goods_id) 
22        { 
23            $this->show_warning('Hacking Attempt'); 
24            return; 
25        } 
26          
27        $data= $this-> get_order_data($goods_id); 
28          
29        if($data=== false) 
30        { 
31            return; 
32        } 
33          
34        $this->assign('order', $data); 
35  
36        $this->display('gorder.index.html'); 
37  
38    } 
39      
40    functionget_order_data($goods_id) 
41    { 
42        //clean_cache(); 
43        $cache_server=& cache_server(); 
44        //print_r($cache_server); 
45        $key= 'order_'. $goods_id; 
46        //$key = $this->_get_cache_id(); 
47        $r= $cache_server->get($key); 
48        $cached= true; 
49          
50        $db= &db(); 
51          
52        $sql= "select count(*) 
53                from shop_order a, shop_order_extm b, shop_order_goods c 
54                where a.order_id = b.order_id andb.order_id = c.order_id 
55                andc.goods_id = '".$goods_id."'
56                anda.status != '11'
57                anda.status != '0'
58                anda.status != '20'
59                order by a.add_time desc "; 
60        //echo $sql; 
61        $num= $db-> getone($sql);              //求出总记录数 
62        $page= $this->_get_page(NUM_PER_PAGE);  //每页显示的条数,默认是10条 
63        $page['item_count'] = $num;             // 返回一个数组$page,$page['limit']=0,10 
64        $this->_format_page($page);              //格式化分页 
65          
66        $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  
67                from shop_order a, shop_order_extm b, shop_order_goods c 
68                where a.order_id = b.order_id andb.order_id = c.order_id 
69                andc.goods_id = '".$goods_id."'
70                anda.status != '11'
71                anda.status != '0'
72                anda.status != '20'
73                order by a.add_time desc limit ".$page['limit']; 
74          
75        $result= $db-> query($sql2); 
76          
77        $this-> assign('page_info',$page);  //向模板页传递页数 
78        $this-> assign('que',$sql2);    //向模板页传递查询结果 
79          
80        //$r = array(); 
81        while($myrow= $db-> fetch_array($result)) 
82        { 
83            $r[] = $myrow; 
84        } 
85  
86        $cache_server->set($key, $r, 1); 
87        return$r; 
88    } 
89      
90} 
91  
92?>

简化如下:

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); //向模板页传递查询结果

ecmall中的分页问题的更多相关文章

  1. tp中使用分页技术

    1 public function showList() { $m_ld = D ( 'guangxi_ld' ); $page = I ( 'get.p', 1 ); // 在配置中获取分页值 $p ...

  2. Oracle中经典分页代码!

    在Oracle中因为没有top关键字,所以在sqlserver中的分页代码并不适用于Oracle,那么在Oracle中如何来实现分页呢? --查询所有数据 STUNO STUNAME STUAGE S ...

  3. 在yii中使用分页

    yii中使用分页很方便,如下两种方法: 在控制器中: 1. $criteria = new CDbCriteria(); //new cdbcriteria数据库$criteria->id = ...

  4. [数据库]Oracle和mysql中的分页总结

    Mysql中的分页 物理分页 •在sql查询时,从数据库只检索分页需要的数据 •通常不同的数据库有着不同的物理分页语句 •mysql物理分页,采用limit关键字 •例如:检索11-20条 selec ...

  5. LigerUi中的Grid中不分页显示(local)!

    LigerUi中的Grid中不分页显示! grid为local usePager: true,                         //是否分页

  6. mongo中的分页查询

    /** * @param $uid * @param $app_id * @param $start_time * @param $end_time * @param $start_page * @p ...

  7. springboot中使用分页,文件上传,jquery的具体步骤(持续更新)

    分页: pom.xml     加依赖 <dependency> <groupId>com.github.pagehelper</groupId> <arti ...

  8. restful中的分页

    普通分页 普通分页类似于Django中的分页 源码 class PageNumberPagination(BasePagination): """ A simple pa ...

  9. jdbcTemplate 后台接口中的分页

    Springboot+jdbcTemplate  对查询结果列表做分页, 之前开发的小项目,数据逐渐增多,每次返回所有的查询结果,耗费性能和时间 想到做分页. 于是从简单的分页做起. jdbcTemp ...

随机推荐

  1. 深入浅出Node.js(上)

    (一):什么是Node.js Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟 ...

  2. usb2.0 协议分析

    转:https://blog.csdn.net/u011594613/article/details/48291307 一.USB硬件介绍1.1.概述 一条USB传输线分别由地线.电源线.D+和D-四 ...

  3. MongoDB的Find详解(一)

    1.指定返回的键 db.[documentName].find ({条件},{键指定}) 数据准备persons.json var persons = [{name:"jim",a ...

  4. 使用Java实现八种基本排序

    插入排序.选择排序.冒泡排序.希尔排序.堆排序.快速排序.归并排序.基数排序 import java.util.ArrayList; import java.util.List; /** * 排序算法 ...

  5. INSPIRED启示录 读书笔记 - 第32章 提防有特殊要求的产品

    产品需求不能用户说了算 1.在看到具体的产品之前,用户很难知道自己需要什么 2.用户不知道什么样的产品是可行的(在目前的技术条件下可以实现) 3.用户之间缺少沟通,需求很难统一 怎样回避特例产品可能带 ...

  6. INSPIRED启示录 读书笔记 - 第31章 苹果公司给我的启示

    苹果公司值得学习的经验 1.硬件为软件服务:苹果公司明白硬件必须为软件服务,软件直接服务用户,满足用户需求.采用多点触控显示屏.重力加速器.距离传感器这些硬件技术是为了配合软件满足用户需求 2.软件为 ...

  7. IEnumerable的一些基本方法 补充

    接上一篇,我们发现两表连接方式默认为内连接,而我们在SQL中常用到的左连接没有封装方法.换句话说,微软放弃两表左连或右连的这种做法(只有在2个表都存在值时,这样的连接才有意义). 如果要实现表的左连接 ...

  8. linux内核调试+qemu+eclipse【转】

    本文转载自:https://blog.csdn.net/WANG__RONGWEI/article/details/54922727 一.调试环境: 在ubuntu16.04下,在虚拟机里边运行的ub ...

  9. Linux bridge

    CentOS bridge 配置: 1.创建br0配置文件  touch /etc/sysconfig/network-scripts/ifcfg-br0 2.修改bro配置文件 vi /etc/sy ...

  10. 谈谈 cci 与 i2c

    cci的名字叫, camera control interface, 他由两部分组成,一是i2c ,而另一个部分是 gpio.也就是说,cci 包含i2c.一般情况下,我们只是用到了i2c 部分,没有 ...