• 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); //向模板页传递查询结果
  • 相关阅读:
    multipart/form-data同时传递文本和多文件参数controller接收
    sonar配置记录一下经常找不到
    神经网络分类知识蒸馏
    jconsole监听JVM
    Cocos2dx在安卓平台下获取到assets目录下文件的绝对路径
    打印100以内的质数及优化
    VBA调用百度翻译API
    VBA调用百度智能云的文字识别获取图片中的数字
    象棋的思考方法讨论
    やさしい日本語2019 学习方法
  • 原文地址:https://www.cnblogs.com/tangchuanyang/p/ecmall.html
Copyright © 2020-2023  润新知