<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. 剑指offer 面试39题

    面试39题: 题目:数组中出现次数超过一半的数字 题:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中 ...

  2. jmeter 监控插件JMeterPlugins&PerfMon安装

    下载地址:http://jmeter-plugins.org/downloads/all/ PerfMon: 用来监控Server的CPU.I/O.Memory等情况 ServerAgent-2.2. ...

  3. pycharm一直scanning files to index

    删除了c盘的垃圾文件之后,pycharm就一直scanning files to index 解决方法: 点击file,然后选择invalidate caches / restart ...,再弹出的 ...

  4. (from) Javascript 生成指定范围数值随机数

    from:http://blog.csdn.net/ilibaba/article/details/3741786 查手册后才知道, 介绍的信息少得可怜呐, 没有介绍生成 m-n 范围的随机数..., ...

  5. bacula 备份恢复

    一.数据恢复: 在bacula服务器执行: /opt/bacula/etc/ bconsole #进入交互窗口 *restore #输入restore恢复命令 Automatically select ...

  6. typeset的常见用法

    typeset用于设置变量属性,如大小写,宽度,左右对齐等都可以用typeset来控制, 当用typeset改变一个变量的属性时,这种改变是永久的,下面以ksh为例,演示typeset的几种典型用法 ...

  7. 一个不成熟的编程员,写写 js 的面向对象

    其实感觉本人 js 并未入门,甚至说也是个不合格的编程员,什么面向对象都不会,一直都往 Object 里面填方法,假装很对象的样子. 但学习嘛,这道坎还是得多试几下的,说不定就跨过去了呢. 个人喜欢用 ...

  8. RocketMq入坑指南

    报错信息Caused by: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <172.1 ...

  9. Ubuntu 15.10环境下安装Hive

    1. 安装MySQL sudo tar -xzvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz sudo mv mysql-5.7.13-linux-glibc ...

  10. iOS_核心动画CALayer(一)

    目 录: 一.核心动画简介 二.图层与视图之间的关系 三.CALayer的使用说明 四.CALayer的隐式动画属性 五.在CALayer上绘图 六.总结     一.核心动画简介 Core Anim ...