<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. Android:日常学习笔记(8)———开发微信聊天界面

    Android:日常学习笔记(8)———开发微信聊天界面 只做Nine-Patch图片 Nine-Patch是一种被特殊处理过的PNG图片,能够指定哪些区域可以被拉升,哪些区域不可以.

  2. PAT 天梯赛 L1-039. 古风排版 【字符串处理】

    题目链接 https://www.patest.cn/contests/gplt/L1-039 思路 先根据 len 和 n 判断 有几个 列和几行,然后 从最右边 到 最左边 从上到下 将字符串 录 ...

  3. iOS 结构简单清晰的 设置页面

    这个是也是看了人家的代码,觉得甚是简单清晰,也是比较容易扩展.拿来学习一下 效果展示: 重点有以下2处: 1 .建立groupModel 列清组元素:当前组list 集合, 是否有header 或者 ...

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

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

  5. ORA-01034和ORA-27101的错误

    我本机安装的数据库版本是ORACLE 11G R2,用plsql连接时候,报ora-12514如下错误: 但是在cmd里用sqlplus连接已经创建的用户时候,报如下错误: ORA-01034 - O ...

  6. SQL性能调优策略

    1.建立索引 2.避免全表扫描 避免使用is null, is not null,这样写会放弃该字段的索引. 如果会出现这种情况,尽量在设计表的时候设置默认值 比较操作符中!= <>等避免 ...

  7. JDK各个版本的新特性jdk1.5-jdk8[转]

    JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一 ...

  8. java深入探究14-lucene

    项目代码:链接:http://pan.baidu.com/s/1qXVcfCw 密码:apw1 01 回顾索引 定义:索引是对数据库表中一列或多列的值进行排序的一种结构 目的:加快对数据库表中记录的查 ...

  9. 关于hadoop setCombinerClass 与 setReducerClass同时使用存在的问题。

    最近在学习hadoop mapreduce编程的过程中遇到一个莫名奇妙的问题.最后通过调试时发现同时使用setCombinerClass(Reducer.class)  与  setReducerCl ...

  10. 解析3级JSON的例子

    我们都知道现在Ajax盛行,而且前后台数据交流的格式已经换成了JSON了.虽然我对这种做法还是有点担忧的,如果用户关闭了JavaScript怎么办?但是这些担忧还是不能阻止Ajax的盛行和JSON数据 ...