TIP게시판

제목 간단한 페이징 만들기 도전!(최종완료본??)
글쓴이 계돌이다 작성시각 2012/11/22 12:00:14
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 14698   RSS
 안녕하세요 ci고수님들의 조언을 받아 심심풀이겸 간단한 페이징을 만들어 봤습니다
최종본이라기 보단.. 뭔가 미흡하다능.....;;;

1.controller 에선 

public function kkj_pageing()
{
$page = (int)$this->input->get('page_no',true);
$page_state = $page;
if($page == "")
{
$page = 0;
}
else
{
if($page == 0 || $page < 0) //페이지번호 가 1인 상태에서 <를 클릭할시 !!!
{
$page = '0';
}
else 
{
$page = $page-1;
$page = $page.'0';
}
}
$total_count = 0; //전체 데이터 건수
$page_data_row = 10; //한페이지당 보여줄 데이터 로우 수
$page_count = 0; //페이징 총수
$page_num = $page; //페이징 번호
$total_count = implode("|",$this->kkjtestmodel->pageing_count());
$page_count = ($total_count/$page_data_row);
$page_down = 10;
if(($page_count + 1) < $page_state) //페이지번호가 마지막 번호인상태에서 >를 클릭할시!!
{
$page_over = floor($page_count).'0';
$data['ret'] = $this->kkjtestmodel->ef_getData($page_over,$page_data_row); //맨처음 조회할시
//4
$page_state = $page_state - 1;
}
else
{
$data['ret'] = $this->kkjtestmodel->ef_getData($page_num,$page_data_row); //맨처음 조회할시
}
        $data['page_title'] = "페이징 태스트!!";
        $data['page_count'] = $page_count;
        $data['page_state'] = $page_state;
 
        $this->load->view('kkjpageingtest',$data);
}

2.model 부분
function ef_getData($page_num,$page_data_row)
    {        
               
        $query = "SELECT write_no,
        write_title,
        write_name,
        write_date,
        write_hit
           FROM bord_test
          ORDER BY write_no DESC
          limit $page_num,$page_data_row";
   
        $result = $this->db->query($query);
       
        $ret = array();
        $idx = 0;
                
        foreach($result->result_array() as $row)
        {
        $ret[$idx]["write_no"] = $row['write_no'];
        $ret[$idx]["write_title"] = $row['write_title'];
        $ret[$idx]["write_name"] = $row['write_name'];
        $ret[$idx]["write_date"] = $row['write_date'];
        $ret[$idx]["write_hit"] = $row['write_hit'];
       
        $idx++;
        }        
 
        $this->db->close();
        
        return $ret;
        
    }
    
function pageing_count()//전체 데이터 가져오기;
    {        
               
        $query = "SELECT count(*) as pageing_num
           FROM bord_test";
   
        $result = $this->db->query($query);
       
        $ret = array();
        $idx = 0;
                
        foreach($result->result_array() as $row)
        {
        $ret[$idx] = $row['pageing_num'];
        }        
 
        $this->db->close();
        
        return $ret;
        
    }

3.view 부분
<?php
$count = count($ret);
?>
 
 
<table width = "60%" align = "center" border = "1">
<tr>
<td width = "10%" align = "center" >
번호
</td>
<td width = "20%" align = "center" >
제목
</td>
<td width = "10%" align = "center" >
작성자
</td>
<td width = "10%" align = "center" >
등록일자
</td>
<td width = "10%" align = "center" >
조회수
</td>
</tr>
<?for($i = 0 ; $i < $count ; $i++){?>
<tr>
<td width = "10%" align = "center" >
<?=$ret[$i]['write_no'];?>
</td>
<td width = "20%" align = "center" >
<?=$ret[$i]['write_title'];?>
</td>
<td width = "10%" align = "center" >
<?=$ret[$i]['write_name'];?>
</td>
<td width = "10%" align = "center" >
<?=$ret[$i]['write_date'];?>
</td>
<td width = "10%" align = "center" >
<?=$ret[$i]['write_hit'];?>
</td>
</tr>
<?}?>
</table>
 
<?
$pageing = ceil($page_count);
?>
 
<?
$befores = $page_state - 1;
$afters = $page_state + 1;
?>
 
<table width = "60%" align = "center" border = "0">
<tr>
<td align = "center">
<a href="/Kkjtest/kkj_pageing/?page_no=0">맨앞으로</a>
<a href="/Kkjtest/kkj_pageing/?page_no=<?=$befores?>">이전</a>
<?
for($j = 1 ; $j <= $pageing ; $j++){
?>
[<a href="/Kkjtest/kkj_pageing/?page_no=<?=$j?>"><?=$j?></a>]
<?}?>
<a href="/Kkjtest/kkj_pageing/?page_no=<?=$afters?>">다음</a>
<a href="/Kkjtest/kkj_pageing/?page_no=<?=$pageing?>">맨끝으로</a>
</td>
</tr>
</table>

많이 부족하지만 나름,...갠찮은...?? 페이징 인것같아요...
ci에서 제공해주는 페이징 기능이 있는데.... 분석하기가... 약간 애매모해서....
그냥 생각 날겸 혼자 공부도할겸! 해서 만들어봤는데요...

약간 뭔가가 부족하다는 느낌이 드네여..... 
암튼!!!! 뭔가가 미흡하다는 부분이 있으면 바로 말씀해주세여~^^
 다음글 익명 함수를 아시나요? (8)
 이전글 Codeigniter + mPDF에서 일본어 사용 (10)

댓글

한대승(불의회상) / 2012/11/22 13:28:44 / 추천 0
수고 하셨습니다.
최종 완성된 코드가 궁금 하군요.

꼭 올려 주세요.. ^^
계돌이다 / 2012/11/22 13:34:37 / 추천 0
 //불의회상님

넵~~ 아마 시간날때마다 틈틈히 연구해보려구여...ㅎㅎㅎ