<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. 3.6中的range()

    在python3中range()是这样的: >>> range(4) range(0, 4) #额,列表跑哪去了 在之前的python2中是这样的: >>> ran ...

  2. Ajax:js自执行函数、jsonp、cros

    一.js自执行函数 #(function(){alert(1);})(); (function(){ alert(1); } )(); 二.javascript同源策略 1. 什么是同源策略 理解跨域 ...

  3. HDF及HDF-EOS数据格式简介

    HDF-EOS数据格式介绍 HDF(Hierarchy Data Format )数据格式是美国伊利诺伊大学国家超级计算应用中心(NCSA ,National Central for Super co ...

  4. LDAP注入

    理解LDAP与LDAP注入 0x01 LDAP简介 查阅了一些网上的资料,读了好久还是觉得理解起来很困难,感觉还是不够干,之后看到的一个博客http://www.chinaunix.net/old_j ...

  5. jq .attr()和.prop()方法的区别

    今天在nodejs交流群里面遇到别人在里面说面试的时候遇到了这个问题,没回答出来,面试官讲的他也不明白,这个问题看着很简单,但是往深的解释就很难了. 对于HTML元素本身就带有的固有属性,在处理时,使 ...

  6. 编写自已的第一个MapReduce程序

    从进入系统学习到现在,貌似我们还没有真正开始动手写程序,估计有些立志成为Hadoop攻城狮的小伙伴们已经有些急了.环境已经搭好,小讲也有些按捺不住了.今天,小讲就和大家一起来动手编写我们的第一个Map ...

  7. Apache与Tomcat三种连接方式JK、http_proxy、ajp_proxy

    为什么要让Apache与Tomcat之间进行连接?事实上Tomcat本身已经提供了HTTP服务,该服务默认的端口是8080,也可以改为80.既然Tomcat本身已经可以提供动态加静态web服务,为什么 ...

  8. 【bzoj1345】[Baltic2007]序列问题Sequence

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=1345 因为合并的花费是较大数的权值,所以每个数肯定是和附近的小数合并完后才与大数合并, ...

  9. SpringCloud-高可用的分布式配置中心(config)

    当服务实例很多时,都从配置中心读取文件,这是可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用 新建一个注册中心 pom如下 <?xml version="1.0" ...

  10. 添加vue调试工具vue-devtolls

    1.在使用脚手架vue-cli.js下载好node-modules 2.在node-modules目录下找的vue-devtools文件(如果没有可以用npm install vue-devtools ...