Codeigniter ve Pagination Şeysi

hai!

canım sıkıldı ve codeigniter‘ın çok basit pagination sınıfı ile ilgili bişiler yazalım dedim. öncelikle benim yaptıklarımı yapmak zorunda değilsiniz. burada gayet başarılı anlatılmış aslında. şimdi burada yazacaklarımı anlamanız için azıcık fazla değil ama php bilmen lazım. bununla codeigniter’ın dayalı olduğu MVC altyapısı da bilsen iyi olur. son olarak da bu aşmış framework’e has fonksiyonları bilmen lazım evet kk thx bye.

ilk olarak controller’ımız(users) evet…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function getAllUsers()
{
       $this->load->library('pagination'); //pagination kütüphanesini yükle
 
	$query = $this->users_model->getAllUsers(NULL); //bütün sonuçları al
 
	$config['base_url'] = site_url('users/getAllUsers'); //pagination için kullanılacak fonksiyon 
	$config['total_rows'] = $query->num_rows(); //bütün sonuçların sayısı felan
	$config['per_page'] = 10; //sayfa başına 10 sonuç
 
	$this->pagination->initialize($config); //inişılayz et
 
	//sayfalandırma fonksiyonu 					
	$data['results'] = $this->about_model->getAllUsers(NULL,$config['per_page'],$this->uri->segment(3));
	$data['pagination'] = $this->pagination->create_links(); //linkler otomatik yaratılıyor
 
        $this->load->view('results', $data); //view'u yükle
}

şimdi model’imiz(users_model).. Bu modelde basitçe bir “users” tablosundan bütün veriyi çekiyoruz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function getAllUsers($data = array(),$num = NULL, $offset = NULL)  
   {  
          $this->db->select('a.*');  
 
          if(!is_null($num) && !is_null($offset))  
          {  
               $query = $this->db->get('users as a', $num, $offset);  
          }  
          else  
          {  
               $query = $this->db->get('users as a');  
          }  
          return $query;  //bütün sonuçları döndür işte
   }

son olarak ise sırada sonuçların gösterileceği view’ımız(results) var evet 🙂 en altta yer alan pagination değişkenine dikkat pls…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
< ?php if($results->num_rows > 0): ?>
< ?php 
if($this->uri->segment(3))
{
	 $count = $this->uri->segment(3);
}
else
{
	$count = 0;
}
?>
< ?php foreach($results->result() as $object): ?>//bütün sonuçları ölesine yazdırmaca
< ? echo $count++; ?>
< ? echo $object->name; ?>
< ? echo $object->date; ?>
< ? echo $object->email; ?>
< ?php endforeach; ?>
< ?php endif; ?>
1
< ?php echo $pagination; //sayfalandırma linkleri otomatik olarak oluşturulup bu şekilde yazılıyor evet ?>

bu biraz karışık gibi görünebilir ama aslında alıştıktan sonra çok kolaymış cidden…screenshot koymaya üşendiğim için sonucun aynen dokümantasyondaki gibi olacağını arz ederim 🙂 hayırlı olsun…