Ignore:
Timestamp:
2012/05/14 02:38:11 (12 years ago)
Author:
nanasess
bzr:base-revision:
nanasess@fsm.ne.jp-20120513161702-kk78khnxu1sfsw5s
bzr:committer:
Kentaro Ohkouchi <nanasess@fsm.ne.jp>
bzr:file-ids:

data/class/SC_Query.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_Query.php
data/class/SC_SelectSql.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_SelectSql.php
data/class/helper/SC_Helper_Customer.php 19864@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fversion-2_5-dev%2Fdata%2Fclass%2Fhelper%2FSC_Helper_Customer.php
data/class/pages/admin/system/LC_Page_Admin_System.php 15585@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fsystem%2FLC_Page_Admin_System.php
data/class/pages/products/LC_Page_Products_Detail.php 15154@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fproducts%2FLC_Page_Products_Detail.php
bzr:mapping-version:
v4
bzr:merge:

nanasess@fsm.ne.jp-20120513173417-27p8tawv1k1wnthe
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
nanasess@fsm.ne.jp-20120513173804-r2alhhlv9wbg9pzn
bzr:revno:
4500
bzr:revprop:branch-nick:
branches/version-2_12-dev
bzr:root:
branches/version-2_12-dev
bzr:testament:

bazaar-ng testament short form 2.1
revision-id: nanasess@fsm.ne.jp-20120513173804-r2alhhlv9wbg9pzn
sha1: 30955b6741e635d275aa0244123a27bbdc87996f
bzr:timestamp:
2012-05-14 02:38:04.782999992 +0900
bzr:user-agent:
bzr2.4.2+bzr-svn1.1.2
Message:

#1752 (LIMIT, OFFSET をベタ書きしない)

  • SC_Query::setLimitOffset() は MDB2::setLimit() のラッパーに修正
  • SC_SelectSql::setLimitOffset() は SC_Query::setLimitOffset() を使用するよう修正
Location:
branches/version-2_12-dev/data/class
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/SC_Query.php

    r21830 r21832  
    348348     * 
    349349     * この関数で設定した値は SC_Query::getSql() で使用されます. 
    350      * TODO MDB2::setLimit() を使用する 
    351350     * 
    352351     * @param integer $limit LIMIT 句に付与する値 
     
    356355    function setLimitOffset($limit, $offset = 0) { 
    357356        if (is_numeric($limit) && is_numeric($offset)) { 
    358  
    359             $option = ' LIMIT ' . $limit; 
    360             $option.= ' OFFSET ' . $offset; 
    361             $this->option .= $option; 
     357            $this->conn->setLimit($limit, $offset); 
    362358        } 
    363359        return $this; 
     
    457453    function setLimit($limit) { 
    458454        if (is_numeric($limit)) { 
    459             $this->option = ' LIMIT ' .$limit; 
     455            $this->conn->setLimit($limit); 
    460456        } 
    461457        return $this; 
     
    467463     * この関数で設定した値は SC_Query::getSql() で使用されます. 
    468464     * 
    469      * @param integer $offset LIMIT 句に設定する値 
     465     * @param integer $offset OFFSET 句に設定する値 
    470466     * @return SC_Query 自分自身のインスタンス 
    471467     */ 
    472468    function setOffset($offset) { 
    473469        if (is_numeric($offset)) { 
    474             $this->offset = ' OFFSET ' .$offset; 
     470            $this->conn->setLimit($this->conn->limit, $offset); 
    475471        } 
    476472        return $this; 
  • branches/version-2_12-dev/data/class/SC_SelectSql.php

    r21767 r21832  
    3131    var $order; 
    3232    var $group; 
    33     var $limit; 
    34     var $offset; 
    3533    var $arrSql; 
    3634    var $arrVal; 
     
    4745        $this->sql = $this->select .' '. $this->where .' '. $this->group .' '; 
    4846 
    49         // $mode == 1 は limit & offset無し 
    5047        if ($mode == 2) { 
    5148            $this->sql .= $this->order; 
    52         } elseif ($mode != 1) { 
    53             $this->sql .= $this->order . ' ' .$this->limit .' '. $this->offset; 
    5449        } 
    5550 
     
    240235    } 
    241236 
    242     function setLimitOffset($limit, $offset) { 
    243  
    244         if (is_numeric($limit) and is_numeric($offset)) { 
    245  
    246             $this->limit = ' LIMIT ' .$limit; 
    247             $this->offset = ' OFFSET ' .$offset; 
    248         } 
    249     } 
    250  
    251237    function clearSql() { 
    252238        $this->select = ''; 
     
    254240        $this->group = ''; 
    255241        $this->order = ''; 
    256         $this->limit = ''; 
    257         $this->offset = ''; 
    258242    } 
    259243 
  • branches/version-2_12-dev/data/class/helper/SC_Helper_Customer.php

    r21695 r21832  
    637637        $offset = intval($page_max) * (intval($disp_pageno) - 1); 
    638638        if ($limitMode == '') { 
    639     $objSelect->setLimitOffset($page_max, $offset); 
     639            $objQuery->setLimitOffset($page_max, $offset); 
    640640        } 
    641641        $arrData = $objQuery->getAll($objSelect->getList(), $objSelect->arrVal); 
    642642 
    643643        // 該当全体件数の取得 
     644        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    644645        $linemax = $objQuery->getOne($objSelect->getListCount(), $objSelect->arrVal); 
    645646 
  • branches/version-2_12-dev/data/class/pages/admin/system/LC_Page_Admin_System.php

    r21743 r21832  
    128128     */ 
    129129    function getMemberData($startno) { 
    130         $objSql = new SC_SelectSql_Ex(); 
    131         $objSql->setSelect('SELECT member_id,name,department,login_id,authority,rank,work FROM dtb_member'); 
    132         $objSql->setOrder('rank DESC'); 
    133         $objSql->setWhere('del_flg <> 1 AND member_id <> '. ADMIN_ID); 
    134         $objSql->setLimitOffset(MEMBER_PMAX, $startno); 
    135  
     130        $col = 'member_id,name,department,login_id,authority,rank,work'; 
     131        $from = 'dtb_member'; 
     132        $where = 'del_flg <> 1 AND member_id <> ?'; 
    136133        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    137         $arrMemberData = $objQuery->getAll($objSql->getSql()); 
    138  
     134        $objQuery->setOrder('rank DESC'); 
     135        $objQuery->setLimitOffset(MEMBER_PMAX, $startno); 
     136        $arrMemberData = $objQuery->select($col, $from, $where, array(ADMIN_ID)); 
    139137        return $arrMemberData; 
    140138    } 
  • branches/version-2_12-dev/data/class/pages/products/LC_Page_Products_Detail.php

    r21743 r21832  
    516516        $col = 'create_date, reviewer_url, reviewer_name, recommend_level, title, comment'; 
    517517        $from = 'dtb_review'; 
    518         $where = 'del_flg = 0 AND status = 1 AND product_id = ? ORDER BY create_date DESC LIMIT ' . REVIEW_REGIST_MAX; 
     518        $where = 'del_flg = 0 AND status = 1 AND product_id = ?'; 
     519        $objQuery->setOrder('create_date DESC'); 
     520        $objQuery->setLimit(REVIEW_REGIST_MAX); 
    519521        $arrWhereVal = array($id); 
    520522        $arrReview = $objQuery->select($col, $from, $where, $arrWhereVal); 
Note: See TracChangeset for help on using the changeset viewer.