Ticket #2547: #2547.patch

File #2547.patch, 4.3 KB (added by Seasoft, 10 years ago)
  • data/class/api/operations/ItemSearch.php

     
    151151                $from = "$dtb_product_categories T2 JOIN dtb_category T3 ON T2.category_id = T3.category_id"; 
    152152                $where = 'T2.product_id = alldtl.product_id'; 
    153153                $objQuery->setOrder('T3.rank DESC, T2.rank DESC'); 
    154                 $objQuery->setLimit(1); 
    155                 $sub_sql = $objQuery->getSqlWithLimitOffset($col, $from, $where); 
     154                $sub_sql = $objQuery->getSql($col, $from, $where); 
     155                $sub_sql = $objQuery->dbFactory->addLimitOffset($sub_sql, 1); 
    156156 
    157157                $objQuery->setOrder("($sub_sql) DESC ,product_id DESC"); 
    158158                break; 
  • data/class/pages/admin/LC_Page_Admin_Home.php

     
    251251        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    252252 
    253253        $objQuery->setOrder('order_detail_id'); 
    254         $objQuery->setLimit(1); 
    255         $sql_product_name = $objQuery->getSqlWithLimitOffset('product_name', 'dtb_order_detail', 'order_id = dtb_order.order_id'); 
     254        $sql_product_name = $objQuery->getSql('product_name', 'dtb_order_detail', 'order_id = dtb_order.order_id'); 
     255        $sql_product_name = $objQuery->dbFactory->addLimitOffset($sql_product_name, 1); 
    256256 
    257257        $cols = <<< __EOS__ 
    258258            dtb_order.order_id, 
  • data/class/pages/products/LC_Page_Products_List.php

     
    239239                $from = "$dtb_product_categories T2 JOIN dtb_category T3 ON T2.category_id = T3.category_id"; 
    240240                $where = 'T2.product_id = alldtl.product_id'; 
    241241                $objQuery->setOrder('T3.rank DESC, T2.rank DESC'); 
    242                 $objQuery->setLimit(1); 
    243                 $sub_sql = $objQuery->getSqlWithLimitOffset($col, $from, $where); 
     242                $sub_sql = $objQuery->getSql($col, $from, $where); 
     243                $sub_sql = $objQuery->dbFactory->addLimitOffset($sub_sql, 1); 
    244244 
    245245                $objQuery->setOrder("($sub_sql) DESC ,product_id DESC"); 
    246246                break; 
  • data/class/SC_Product.php

     
    8282            $o_table = $this->arrOrderData['table']; 
    8383            $o_order = $this->arrOrderData['order']; 
    8484            $objQuery->setOrder("T2.$o_col $o_order"); 
    85             $objQuery->setLimit(1); 
    86             $sub_sql = $objQuery->getSqlWithLimitOffset($o_col, "$o_table AS T2", 'T2.product_id = alldtl.product_id'); 
     85            $sub_sql = $objQuery->getSql($o_col, "$o_table AS T2", 'T2.product_id = alldtl.product_id'); 
     86            $sub_sql = $objQuery->dbFactory->addLimitOffset($sub_sql, 1); 
    8787 
    8888            $objQuery->setOrder("($sub_sql) $o_order, product_id"); 
    8989        } 
  • data/class/SC_Query.php

     
    12151215            return SC_Query_Ex::$arrPoolInstance[$key_str]; 
    12161216        } 
    12171217    } 
    1218  
    1219     /** 
    1220      * 構築した SELECT 文を LIMIT OFFSET も含め取得する. 
    1221      * 
    1222      * @param  string SELECT 文に含めるカラム名 
    1223      * @param  string SELECT 文に含めるテーブル名 
    1224      * @param  string SELECT 文に含める WHERE 句 
    1225      * @return string 構築済みの SELECT 文 
    1226      */ 
    1227     function getSqlWithLimitOffset($cols, $from = '', $where = '') 
    1228     { 
    1229         $sql = $this->getSql($cols, $from, $where); 
    1230         $offset = $this->conn->offset; 
    1231         $limit = $this->conn->limit; 
    1232         $this->setLimitOffset(0, 0); 
    1233  
    1234         return $this->dbFactory->addLimitOffset($sql, $limit, $offset); 
    1235     } 
    12361218}