您的位置:首页 > 其它

关联表查询及加 ""

2015-11-11 16:05 387 查看
 //*** 用于推广统计查询-start* @param int $page* @param int $pageSize* @param array $args * @return array */

    public static function queryList($page, $pageSize, $args = array()) {

        $condition ='1=1';

        $params = array(); 

        //查询条件

        //加入expand 

        if ($args['expand'] != '') {

            $condition.=' AND user_expand.expand=:expand';

            $params['expand'] =$args['expand'];

        }

        //加入开始datetime

        if ($args['dttm_start'] != '') {

            $condition.=' AND user_expand.datetime>=:dttm_start';

            $params['dttm_start'] = $args['dttm_start'] . " 00:00:00";

        }

        //加入结束datetime

        if ($args['dttm_end'] != '') {

            $condition.=' AND user_expand.datetime<=:dttm_end';

            $params['dttm_end'] = $args['dttm_end'] . " 23:59:59";

        }

        //用户status

           $args['status']=0;

      //  if ($args['status'] != '') {

            $condition.=' AND user.status=:status';

            $params['status'] = $args['status'];  

        //服务号 订阅号          

         if($args['q_by']!=""){

                $condition .= " AND user.appid ='".$args['q_by']."'" ;

             }      

//        print_r($condition);

        if ($_REQUEST['q_order'] == '') {

            $order = 'user_expand.datetime DESC';

        } else {

            if (substr($_REQUEST['q_order'], -1) == '~')

                $order = substr($_REQUEST['q_order'], 0, -1) . ' DESC';

            else

                $order = $_REQUEST['q_order'] . ' ASC';

        }

        

        //计算记录数目  -先生成一个字表 ,在查询

        $text= Yii::app()->db->createCommand()

        ->select("user_expand.expand")

        ->from("user_expand")

        ->leftJoin('user', 'user.openid=user_expand.openid')

        ->where($condition, $params)

        ->group("user_expand.expand")

        ->text;

       

        $total_num = Yii::app()->db->createCommand()

        ->select("count(1) cnt ")

        ->from("( $text ) t")

        ->where("", $params)

        ->queryRow();

        $total_num = $total_num["cnt"];

        

       // 查询所有记录

        $rows = Yii::app()->db->createCommand()

        ->select(" user_expand.expand,count(1) c ")

        ->from("user_expand")

        ->leftJoin('user', 'user.openid=user_expand.openid')

        ->where($condition, $params)

        ->order($order)

        ->limit($pageSize)

        ->offset($page * $pageSize)

        ->group("user_expand.expand")

        ->queryAll();

        $rs['status'] = 0;

        $rs['desc'] = '成功';

        $rs['page_num'] = ($page + 1);

        $rs['total_num'] = $total_num;

        $rs['num_of_page'] = $pageSize;

        $rs['rows'] = $rows; 

        return $rs; 

 

    } // 用于推广统计查询-end  //////////////////////////////////////////////////////////////////////////////////////////
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  关联表查询及加