0

コントローラ

elseif($type == 'high'){
        //Get Urgent Projects
        $this->session->set_userdata('show_num','5');
        $page_rows = $this->session->userdata('show_num');


        $urgent_conditions = array('projects.project_status' => '0','budget_max >=' => '10');
        $order = array('budget_max','DESC');
        $this->outputData['listProjects']   = $this->skills_model->getProjects($urgent_conditions,NULL,NULL,NULL,$order);
        $this->outputData['title'] = 'High Budget Projects';
        $this->outputData['viewall'] = 'high_budget';
    }
    $this->load->view('listProjects',$this->outputData);

モデル

 function getProjects($conditions=array(),$fields='',$like=array(),$limit=array(),$orderby = array())
 {
    //Check For Conditions
    if(is_array($conditions) and count($conditions)>0)      
        $this->db->where($conditions);

    //Check For like statement
    if(is_array($like) and count($like)>0)      
        $this->db->like($like); 

    //Check For Limit   
    if(is_array($limit))        
    {
        if(count($limit)==1)
            $this->db->limit($limit[0]);
        else if(count($limit)==2)
            $this->db->limit($limit[0],$limit[1]);
    }   
    //pr($orderby);
    //Check for Order by
    if(is_array($orderby) and count($orderby)>0)
        $this->db->order_by($orderby[0], $orderby[1]);

    $this->db->from('projects');
    $this->db->join('users', 'users.id = projects.creator_id','left');
    //Check For Fields   
    if($fields!='')
            $this->db->select($fields);
    else        
        $this->db->select('projects.id,projects.project_name,projects.project_status,projects.description,projects.budget_min,projects.budget_max,projects.project_categories,projects.creator_id,projects.is_feature,projects.is_urgent,projects.is_hide_bids,projects.created,projects.attachment_name,projects.attachment_url,users.user_name,projects.enddate,projects.programmer_id,projects.project_award_date,projects.project_award_date,projects.contact,projects.salary,projects.flag,projects.escrow_due,users.id as userid,projects.checkstamp,projects.provider_rated,projects.buyer_rated,projects.project_paid,projects.is_private,projects.private_users,users.user_rating,users.num_reviews,users.email'); 
    $result =$this->db->get();

    return $result;

 }//End of getProjects Function

私が直面している問題は、返される結果の量を制限できないことです。これは、この「HIGH」 $type には設定が組み込まれていないためです。他の $type については、管理パネルにいくつかの方法で設定があります戻ることが多い。とにかく、ここに LIMIT 番号を挿入して、固定量の結果を返すように強制することはできますか?

4

1 に答える 1

2

メソッドにはカスタム制限を渡すための4番目のパラメーターがありますが、配列であるため、以下のように渡します

//this is limit 0,5
$this->skills_model->getProjects($urgent_conditions,NULL,NULL,array(5),$order);

//this is limit 5,20
$this->skills_model->getProjects($urgent_conditions,NULL,NULL,array(5,20),$order);
于 2012-10-16T05:08:09.257 に答える