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

Changeset 6522


Ignore:
Timestamp:
Apr 11, 2008, 3:37:44 PM (12 years ago)
Author:
ebihara
Message:

#2061:メンバーリスト絞り込み・ソート用DB関数リファクタリング(メールアドレスの有無によるメンバーIDリスト取得部分を別関数として分離)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/trunk/webapp/modules/admin/lib/db_admin.php

    r6521 r6522  
    695695
    696696/**
     697 * メールアドレスの有無によるメンバーIDリスト絞り込み
     698 *
     699 * 渡されたメンバーIDの配列を条件に従い絞り込んだものを返す
     700 *
     701 * @return array
     702 */
     703function db_admin_c_member_id_list4cond_mail_address($ids, $cond_list)
     704{
     705    $sql = 'SELECT c_member_id FROM c_member_secure';
     706    $wheres = array();
     707
     708    // PCメールアドレスの有無で絞る
     709    if ($cond_list['is_pc_address'] == 1) {
     710        $wheres[] = "pc_address <> ''";
     711    } elseif ($cond_list['is_pc_address'] == 2) {
     712        $wheres[] = "pc_address = ''";
     713    }
     714
     715    // 携帯メールアドレスの有無で絞る
     716    if ($cond_list['is_ktai_address'] == 1) {
     717        $wheres[] = "ktai_address <> ''";
     718    } elseif ($cond_list['is_ktai_address'] == 2) {
     719        $wheres[] = "ktai_address = ''";
     720    }
     721
     722    if ($wheres) {
     723        $where = ' WHERE ' . implode(' AND ', $wheres);
     724    } else {
     725        $where = '';
     726    }
     727    $sql .= $where;
     728
     729    $temp_ids = db_get_col($sql);
     730
     731    return array_intersect($ids, $temp_ids);
     732}
     733
     734/**
    697735 * メンバーIDリスト取得(絞り込み対応)
    698736 */
     
    712750    }
    713751
    714     // --- メールアドレスで絞り込み ここから
     752    // メールアドレスで絞り込み
    715753    if (!empty($cond_list['is_pc_address']) || !empty($cond_list['is_ktai_address'])) {
    716 
    717         $sql = 'SELECT c_member_id FROM c_member_secure';
    718         $wheres = array();
    719 
    720         //PCメールアドレスの有無で絞る
    721         if ($cond_list['is_pc_address'] == 1) {
    722             $wheres[] = "pc_address <> ''";
    723         } elseif ($cond_list['is_pc_address'] == 2) {
    724             $wheres[] = "pc_address = ''";
    725         }
    726 
    727         //携帯メールアドレスの有無で絞る
    728         if ($cond_list['is_ktai_address'] == 1) {
    729             $wheres[] = "ktai_address <> ''";
    730         } elseif ($cond_list['is_ktai_address'] == 2) {
    731             $wheres[] = "ktai_address = ''";
    732         }
    733 
    734         if ($wheres) {
    735             $where = ' WHERE ' . implode(' AND ', $wheres);
    736         } else {
    737             $where = '';
    738         }
    739         $sql .= $where;
    740 
    741         $temp_ids = db_get_col($sql);
    742 
    743         //メールアドレスで絞り込み
    744         $ids = array_intersect($ids, $temp_ids);
    745 
    746     }
    747     // --- メールアドレスで絞り込み ここまで
     754        $ids = db_admin_c_member_id_list4cond_mail_address($ids, $cond_list);
     755    }
    748756
    749757    //各プロフィールごとで絞り結果をマージする(ソートオーダーつき)
Note: See TracChangeset for help on using the changeset viewer.