ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 13050


Ignore:
Timestamp:
Oct 27, 2009, 4:24:37 PM (10 years ago)
Author:
shingo
Message:

#4355:INDEXの「category_name_c_member_id」を使用しない抽出方法に変更

Location:
OpenPNE/branches/stable-2.14.x/webapp
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/branches/stable-2.14.x/webapp/lib/db/diary.php

    r11386 r13050  
    1818
    1919    return $result;
    20 }
    21 
    22 /**
    23  * カテゴリ名からカテゴリIDを得る
    24  *
    25  * @param int $c_member_id
    26  * @param string $category_name
    27  * @return bool
    28  */
    29 function db_diary_get_category_id4category_name($c_member_id, $category_name)
    30 {
    31     $sql = 'SELECT c_diary_category_id FROM c_diary_category ' .
    32         'WHERE category_name = ? AND c_member_id = ?';
    33     return db_get_one($sql, array($category_name, intval($c_member_id)));
    3420}
    3521
  • OpenPNE/branches/stable-2.14.x/webapp/modules/pc/do/h_diary_add_insert_c_diary.php

    r11509 r13050  
    7979        $c_diary_id = db_diary_insert_c_diary($c_member_id, $subject, $body, $public_flag, $is_comment_input);
    8080
     81        $c_diary_category_list = db_diary_category_list4c_member_id($c_member_id);
    8182        foreach($category as $value) {
    8283            if (empty($value)) {
    8384                break;
    8485            }
    85 
    86             $c_category_id = db_diary_get_category_id4category_name($c_member_id, $value);
    87             if (is_null($c_category_id)) {
     86            // 同一のカテゴリ名が登録済みかどうかを確認
     87            $c_category_id = 0;
     88            foreach ($c_diary_category_list as $c_diary_category) {
     89                if ($c_diary_category['category_name'] == $value) {
     90                    $c_category_id = $c_diary_category['c_diary_category_id'];
     91                    break;
     92                }
     93            }
     94            // 未登録の場合は新規に登録する
     95            if (!$c_category_id) {
    8896                $c_category_id = db_diary_category_insert_category($c_member_id, $value);
    8997            }
  • OpenPNE/branches/stable-2.14.x/webapp/modules/pc/do/h_diary_edit_insert_c_diary.php

    r11696 r13050  
    9494        //カテゴリ登録しなおし
    9595        db_diary_category_delete_c_diary_category_diary($target_c_diary_id);
     96
     97        $c_diary_category_list = db_diary_category_list4c_member_id($c_diary['c_member_id']);
    9698        foreach($category as $value) {
    9799            if (empty($value)) {
    98100                break;
    99101            }
    100             $c_category_id = db_diary_get_category_id4category_name($c_diary['c_member_id'], $value);
    101             if (is_null($c_category_id)) {
     102            // 同一のカテゴリ名が登録済みかどうかを確認
     103            $c_category_id = 0;
     104            foreach ($c_diary_category_list as $c_diary_category) {
     105                if ($c_diary_category['category_name'] == $value) {
     106                    $c_category_id = $c_diary_category['c_diary_category_id'];
     107                    break;
     108                }
     109            }
     110            // 未登録の場合は新規に登録する
     111            if (!$c_category_id) {
    102112                $c_category_id = db_diary_category_insert_category($c_diary['c_member_id'], $value);
    103113            }
Note: See TracChangeset for help on using the changeset viewer.