zoukankan      html  css  js  c++  java
  • ecmall中的分页问题

    <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); //向模板页传递查询结果
  • 相关阅读:
    HDU 5528 Count a * b 欧拉函数
    HDU 5534 Partial Tree 完全背包
    HDU 5536 Chip Factory Trie
    HDU 5510 Bazinga KMP
    HDU 4821 String 字符串哈希
    HDU 4814 Golden Radio Base 模拟
    LA 6538 Dinner Coming Soon DP
    HDU 4781 Assignment For Princess 构造
    LA 7056 Colorful Toy Polya定理
    LA 6540 Fibonacci Tree
  • 原文地址:https://www.cnblogs.com/tangchuanyang/p/ecmall.html
Copyright © 2011-2022 走看看