Welcome Guest, Not a member yet? Register   Sign In
special complex pagination with CI ?
#1

[eluser]fuji2009[/eluser]
Hello guys i have a problem, how can i do complex pagination with CI ? because i use complex request


this is my model :
Code:
function get_private_threads($user_login_id)
    {
        $this->db->select('message_id, MAX(id) id');
        $this->db->group_by('message_id');
        $this->db->order_by('id', 'desc');
        $this->db->from('private_threads');
        $this->db->where('id_sender !=',$user_login_id);
        $this->db->where("(author_id=".$user_login_id." OR parent_id=".$user_login_id.")",NULL,FALSE);
        
        $query = $this->db->get();
        
        if ($query->num_rows()>0)
        {
            $private_threads_array = $query->result_array();
        }
        else
        {
            $private_threads_array = array();
        }
        
        $query->free_result();
        $last_message_array = array();
        
        foreach ($private_threads_array as $private_thread)
        {
            $this->db->select('profil.id,profil.username,profil.sexe,profil.birthdate,profil.id_departement,private_threads.message_id,private_threads.author_id,private_threads.parent_id,private_threads.subject,private_threads.content,private_threads.created_at,private_threads.read');
            $this->db->order_by('private_threads.id', 'desc');
            $this->db->from('private_threads');
            $this->db->where('private_threads.message_id',$private_thread["message_id"]);
            $this->db->where('private_threads.id',$private_thread["id"]);
            $this->db->join('profil', 'private_threads.id_sender = profil.id');
            
            $query = $this->db->get();
            //$this->db->count_all_results();
            if ($query->num_rows()>0)
            {
                $last_message_array[] = $query->row_array();
            }
            $query->free_result();
        }

        return $last_message_array;
        
    }

My controller :

Code:
function private_message(){
        if(!$this->session->userdata('id')){
            redirect('welcome');
        }
        $data['page']='private_message';
        $data['title'] = 'Messages Privés';
        
        $user_login_id = $this->session->userdata('id');
        $data['username'] = $this->session->userdata('username');
        
        $this->load->model('profile_model');
        $private_threads = $this->profile_model->get_private_threads($user_login_id);
        /*
        $private_threads2 = $this->profile_model->get_private_threads2($user_login_id);
        $countprivate = count($private_threads2);
        
        $this->load->library('pagination');

        $config['base_url'] = base_url().'index.php/profile/private_message/';
        $config['total_rows'] = $countprivate;
        $config['per_page'] = '5';
        $config['full_tag_open'] = '<p>';
        $config['full_tag_close'] = '</p>';

        $this->pagination->initialize($config);
        
        $data['results'] = $this->profile_model->get_private_threads($user_login_id,$config['per_page'],$this->uri->segment(3));
        */
        $message_array=array();
        foreach($private_threads as $message)
            {
                $message_array[$message['id']]['photo'] = $this->profile_model->get_profile_photo($message['author_id']);    
            }

        $last = $this->profile_model->get_last_members();
        $last_array=array();
        foreach($last as $lastly)
        {
            $last_array[$lastly['id']]['photo'] = $this->profile_model->get_profile_photo_by_friend($lastly['id']);
        }
        
        $photos = $this->profile_model->get_profile_photo($user_login_id);
        
        $data['photos'] = $photos;
        $data['last'] = $last;
        $data['last_array'] = $last_array;
        $nb_notif = $this->profile_model->count_notif($user_login_id);
        $age = $this->profile_model->get_age($user_login_id);
        $data['age'] = $age;
        $data['nb_notif']= $nb_notif;
        $data['user_login_id'] = $user_login_id;
        $data['private_threads']=$private_threads;
        $data['message_array']=$message_array;
        $data['pageName']= 'private_msg';
        $this->load->view('layout/addons', $data);    
    }

and finally my view
Code:
<td valign="top">
        <span class="subject" name="subject" >
        <a class="content_msg" href='&lt;?php echo base_url().'>
        &lt;?php echo $message['subject'];?&gt;
        </a>
        </span>
        <br/>
        
        &lt;?php
                echo tronque(wordwrap($message['content'],30,"\n",1));
        ?&gt;
        
        
        </td>

Thank you
#2

[eluser]fuji2009[/eluser]
Anyone plz ?
#3

[eluser]dansmith65[/eluser]
What is your question? I looked through your code, but it seems like I have to guess what you are asking. Can you please clarify what you want to accomplish, and at what point you get stuck?


as a side note (it doesn't answer your question, but would clean up your code slightly...
Code:
//replace this...
$config['base_url'] = base_url().'index.php/profile/private_message/';

//with
$config['base_url'] = site_url('profile/private_message/');
//or
$config['base_url'] = site_url(str_replace('::', '/', strtolower(__METHOD__)) );
#4

[eluser]fuji2009[/eluser]
I want do pagination for my message, but with a specific request with clause where ect




Theme © iAndrew 2016 - Forum software by © MyBB