[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='<?php echo base_url().'>
<?php echo $message['subject'];?>
</a>
</span>
<br/>
<?php
echo tronque(wordwrap($message['content'],30,"\n",1));
?>
</td>
Thank you