Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Codeigniter PAGINATION ile sayfa listelerken segment sorunu

Pagination da küçük bir sorunum var.. FİKİR VEYA YARDIMLARINIZI BEKLİYORUM :S

Şöyle ifade edebilirim


$data['yazilar'] = $this->Model->yazilar($this->uri->segment(3,0),10);




Bu şekilde segment 3 ü alıyorum ve her sayfada 10 a göre sıralat diyorum. Başlıklar sıralanıyor. sayfalandırıyor.
Buraya kadar çok güzel ,(ID'a göre sıralatıyorum DESC ile.)



İD:4 METİN:Başlık
İD:3 METİN:Başlık
İD:2 METİN:Başlık
İD:1 METİN:Başlık
Sayfa 2 ye geçip devam ettiğim bu sıralama düzgün biçimde çalışıyor.
ama Bu başlıklardan birine tıkladığımda. Segmen 3 e bu başlığın ID si oluyor.
En büyük aydi 35 ise 34 numaralı id e tıklayınca 1 id li başlığı gösteriyor. 33 id de 1 ve. 2id. başlığı gösteriyor. sürekli 35 tekrarı oluyor.
Ben 1. sayfada 3 IDlı başlığa tıklayınca sayfa değişsn istemiyorum. Sözlük mantığına aykırı :S Gerçekten çözemedim bunu.


Kod :


CONTROLLER


public function index()
{
$this->load->Model('sayfalama_model', 'Model');
$this->load->library('pagination');
$data['sayfalama_linkleri'] = $this->sayfalama_linkleri($this->Model->yazilar_adet());

$data['yazilar'] = $this->Model->yazilar($this->uri->segment(3,0),10);

$this->load->view('index_ana', $data);
}
function sayfalama_linkleri($toplam)
{
$config = array(
'base_url' => site_url('kontrol/index'),
'total_rows' => $toplam,
'per_page' => 10,
'num_links' => 2,
'page_query_string' => FALSE,
'uri_segment' => 3,
'full_tag_open' => '<div class="pagination">',
'full_tag_close' => '</div>',
'first_link' => 'İlk Sayfa',
'first_tag_open' => '',
'first_tag_close' => '',
'last_link' => 'Son Sayfa',
'last_tag_open' => '',
'last_tag_close' => '',
'next_link' => 'Sonraki',
'next_tag_open' => '',
'next_tag_close' => '',
'prev_link' => 'Önceki',
'prev_tag_open' => '',
'prev_tag_close' => '',
'cur_tag_open' => '<span class="current">',
'cur_tag_close' => '</span>',
'num_tag_open' => '',
'num_tag_close' => ''
);
$this->pagination->initialize($config);
return $this->pagination->create_links();
}






MODEL


function yazilar($baslangic, $limit)
{
$sql = "SELECT * FROM t_baslik ORDER BY b_id DESC LIMIT $baslangic,$limit";
$query = $this->db->query($sql);
if( $query->num_rows() > 0 )
{
return $query->result_array();
}
else
{
return FALSE;
}
}
function yazilar_adet()
{
$sql = "SELECT COUNT(*) as adet FROM t_baslik";
$query = $this->db->query($sql);
return (int)$query->row()->adet;
}




VİEW


<?php if( $yazilar ) : ?>
<table id="s_table">
<tr>
<th>ID</th>
<th>Başlık</th>
</tr>
<?php foreach( $yazilar as $dizi ) : ?>
<tr>
<td style="width: 20;"><?php echo $dizi['b_id']; ?></td>
<td><a href=" <?php echo ''.base_url().'index.php/view/index/'.$dizi['b_id'].''; ?>"><?php echo $dizi['b_baslik']; ?></a></td>
</tr>
<?php endforeach; ?>
</table>
<?php echo $sayfalama_linkleri; ?>
<?php endif; ?>
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

Hiç cevap bulunamadı. İlk cevabı siz yazın.