Ignore:
Timestamp:
2012/06/21 17:46:01 (12 years ago)
Author:
pineray
Message:

#1876 データ生成スクリプトでカテゴリーツリーが壊れる

ランクと親カテゴリーの指定に問題があった.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/test/createEcCubeData-v25.php

    r21867 r21937  
    143143        if ($this->delete) { 
    144144            $this->objQuery->delete('dtb_category'); 
     145            $existingMaxRank = 0; 
     146        } else { 
     147            $existingMaxRank = $this->objQuery->max('rank','dtb_category'); 
    145148        } 
    146149 
     
    148151 
    149152        // 全カテゴリ共通の値 
     153        $sqlval = array(); 
    150154        $sqlval['creator_id'] = 2; 
    151155        $sqlval['create_date'] = 'CURRENT_TIMESTAMP'; 
     
    158162            $sqlval['parent_category_id'] = (string) '0'; 
    159163            $sqlval['level'] = 1; 
    160             $sqlval['rank'] = $this->lfGetTotalCategoryrank() - $count; 
     164            $sqlval['rank'] = $this->lfGetTotalCategoryrank($existingMaxRank) - $count; 
    161165            $sqlval['category_id'] = $this->objQuery->nextVal('dtb_category_category_id'); 
    162166 
     
    166170            print("."); 
    167171 
     172            $top_category_id = $sqlval['category_id']; 
    168173            // 中カテゴリを生成 
    169174            for ($j = 0; $j < MIDDLE_CATEGORIES_VOLUME; $j++) { 
    170175                $sqlval['category_name'] = sprintf("Category%d%d0", $i, 
    171176                                                   $j + MIDDLE_CATEGORIES_VOLUME); 
    172                 $sqlval['parent_category_id'] = (string) $sqlval['category_id']; 
     177                $sqlval['parent_category_id'] = (string) $top_category_id; 
    173178                $sqlval['level'] = 2; 
    174                 $sqlval['rank'] = $this->lfGetTotalCategoryrank() - $count; 
     179                $sqlval['rank'] = $this->lfGetTotalCategoryrank($existingMaxRank) - $count; 
    175180                $sqlval['category_id'] = $this->objQuery->nextVal('dtb_category_category_id'); 
    176181 
     
    180185                print("."); 
    181186 
     187                $middle_category_id = $sqlval['category_id']; 
    182188                // 小カテゴリを生成 
    183189                for ($k = 0; $k < SMALL_CATEGORIES_VOLUME; $k++) { 
     
    185191                                                       $i, $j, 
    186192                                                       $k + SMALL_CATEGORIES_VOLUME); 
    187                     $sqlval['parent_category_id'] = (string) $sqlval['category_id']; 
     193                    $sqlval['parent_category_id'] = (string) $middle_category_id; 
    188194                    $sqlval['level'] = 3; 
    189                     $sqlval['rank'] = $this->lfGetTotalCategoryrank() - $count; 
     195                    $sqlval['rank'] = $this->lfGetTotalCategoryrank($existingMaxRank) - $count; 
    190196                    $sqlval['category_id'] = $this->objQuery->nextVal('dtb_category_category_id'); 
    191197 
     
    272278 
    273279        for ($i = 0; $i < PRODUCTS_VOLUME; $i++) { 
     280            $sqlval = array(); 
    274281            $sqlval['product_id'] = $this->objQuery->nextval('dtb_products_product_id'); 
    275282            $sqlval['name'] = sprintf("商品%d", $i); 
     
    302309     */ 
    303310    function createClass($class_name) { 
     311        $sqlval = array(); 
     312        $arrRaw = array(); 
    304313        // class_idを取得 
    305314        $sqlval['class_id'] = $this->objQuery->nextVal('dtb_class_class_id'); 
     
    328337     */ 
    329338    function createClassCategory($classcategory_name, $class_id, $class_name) { 
     339        $sqlval = array(); 
     340        $arrRaw = array(); 
    330341        $sqlval['classcategory_id'] = $this->objQuery->nextVal('dtb_classcategory_classcategory_id'); 
    331342        $sqlval['name'] = $classcategory_name; 
     
    368379        printf("商品ID %d の商品規格を生成しています...\n", $product_id); 
    369380 
     381        $sqlval = array(); 
    370382        $sqlval['product_id'] = $product_id; 
    371383        $sqlval['product_type_id'] = 1; 
     
    656668    * 総カテゴリ数を計算し、dtb_categoryに代入するrankに使う 
    657669    */ 
    658     function lfGetTotalCategoryrank(){ 
    659         $TotalCategoryrank = (TOP_CATEGORIES_VOLUME * MIDDLE_CATEGORIES_VOLUME * SMALL_CATEGORIES_VOLUME) + (MIDDLE_CATEGORIES_VOLUME * TOP_CATEGORIES_VOLUME) + TOP_CATEGORIES_VOLUME; 
    660     return $TotalCategoryrank; 
     670    function lfGetTotalCategoryrank($existingMaxRank = 0){ 
     671        $TotalCategoryrank = (TOP_CATEGORIES_VOLUME * MIDDLE_CATEGORIES_VOLUME * SMALL_CATEGORIES_VOLUME) + (MIDDLE_CATEGORIES_VOLUME * TOP_CATEGORIES_VOLUME) + TOP_CATEGORIES_VOLUME + $existingMaxRank; 
     672        return $TotalCategoryrank; 
    661673    } 
    662674 
Note: See TracChangeset for help on using the changeset viewer.