Ignore:
Timestamp:
2011/05/30 16:43:44 (13 years ago)
Author:
Seasoft
Message:

#1337 (商品マスタ、検索結果をすべて削除でDBエラー)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_11-dev/data/class/pages/admin/products/LC_Page_Admin_Products.php

    r20911 r20964  
    134134                 * ----------------------------------------------- */ 
    135135                switch($this->getMode()) { 
    136                 // CSVを送信する。 
    137                 case 'csv': 
    138                     require_once CLASS_EX_REALDIR . 'helper_extends/SC_Helper_CSV_Ex.php'; 
    139  
    140                     $objCSV = new SC_Helper_CSV_Ex(); 
    141                     // CSVを送信する。正常終了の場合、終了。 
    142                     $objCSV->sfDownloadCsv(1, $where, $arrval, $order, true); 
    143                     exit; 
    144                 // 全件削除(ADMIN_MODE) 
    145                 case 'delete_all': 
    146                     $this->doDelete($where, $arrval); 
    147                     break; 
    148  
    149                 // 検索実行 
    150                 default: 
    151                     // 行数の取得 
    152                     $this->tpl_linemax = $this->getNumberOfLines($where, $arrval); 
    153                     // ページ送りの処理 
    154                     $page_max = SC_Utils_Ex::sfGetSearchPageMax($objFormParam->getValue('search_page_max')); 
    155                     // ページ送りの取得 
    156                     $objNavi = new SC_PageNavi_Ex($this->arrHidden['search_pageno'], 
    157                                                $this->tpl_linemax, $page_max, 
    158                                                'fnNaviSearchPage', NAVI_PMAX); 
    159                     $this->arrPagenavi = $objNavi->arrPagenavi; 
    160  
    161                     // 検索結果の取得 
    162                     $this->arrProducts = $this->findProducts($where, $arrval, 
    163                                                           $page_max, $objNavi->start_row, $order, $objProduct); 
    164  
    165                     // 各商品ごとのカテゴリIDを取得 
    166                     if (count($this->arrProducts) > 0) { 
    167                         foreach ($this->arrProducts as $key => $val) { 
    168                             $this->arrProducts[$key]['categories'] = $objDb->sfGetCategoryId($val["product_id"], 0, true); 
    169                             $objDb->g_category_on = false; 
     136                    // CSVを送信する。 
     137                    case 'csv': 
     138                        require_once CLASS_EX_REALDIR . 'helper_extends/SC_Helper_CSV_Ex.php'; 
     139 
     140                        $objCSV = new SC_Helper_CSV_Ex(); 
     141                        // CSVを送信する。正常終了の場合、終了。 
     142                        $objCSV->sfDownloadCsv(1, $where, $arrval, $order, true); 
     143                        exit; 
     144 
     145                    // 全件削除(ADMIN_MODE) 
     146                    case 'delete_all': 
     147                        $this->doDelete($where, $arrval); 
     148                        break; 
     149 
     150                    // 検索実行 
     151                    default: 
     152                        // 行数の取得 
     153                        $this->tpl_linemax = $this->getNumberOfLines($where, $arrval); 
     154                        // ページ送りの処理 
     155                        $page_max = SC_Utils_Ex::sfGetSearchPageMax($objFormParam->getValue('search_page_max')); 
     156                        // ページ送りの取得 
     157                        $objNavi = new SC_PageNavi_Ex($this->arrHidden['search_pageno'], 
     158                                                   $this->tpl_linemax, $page_max, 
     159                                                   'fnNaviSearchPage', NAVI_PMAX); 
     160                        $this->arrPagenavi = $objNavi->arrPagenavi; 
     161 
     162                        // 検索結果の取得 
     163                        $this->arrProducts = $this->findProducts($where, $arrval, 
     164                                                              $page_max, $objNavi->start_row, $order, $objProduct); 
     165 
     166                        // 各商品ごとのカテゴリIDを取得 
     167                        if (count($this->arrProducts) > 0) { 
     168                            foreach ($this->arrProducts as $key => $val) { 
     169                                $this->arrProducts[$key]['categories'] = $objDb->sfGetCategoryId($val["product_id"], 0, true); 
     170                                $objDb->g_category_on = false; 
     171                            } 
    170172                        } 
    171                     } 
    172173                } 
    173174            } 
     
    257258        $sqlval['del_flg']     = 1; 
    258259        $sqlval['update_date'] = 'now()'; 
    259         $objQuery->update("dtb_products", $sqlval, $where, $arrParam); 
    260         $objQuery->update("dtb_products_class", $sqlval, $where, $arrParam); 
    261         $objQuery->delete("dtb_customer_favorite_products", $where, $arrParam); 
     260        $objQuery->begin(); 
     261        $objQuery->update('dtb_products_class', $sqlval, "product_id IN (SELECT product_id FROM dtb_products WHERE $where)", $arrParam); 
     262        $objQuery->delete('dtb_customer_favorite_products', "product_id IN (SELECT product_id FROM dtb_products WHERE $where)", $arrParam); 
     263        $objQuery->update('dtb_products', $sqlval, $where, $arrParam); 
     264        $objQuery->commit(); 
    262265    } 
    263266 
Note: See TracChangeset for help on using the changeset viewer.